    function set_grade(div,object,grade) {
         update_grade_func = function (transport) { update_grade(div,object,grade,transport); };
         failed_update_grade_func = function (transport) { update_grade(div,object,grade,transport); };
         var url = 'insert.cgi'
         var pars = 'xml=yes&object_'+object+'='+grade;
         var myAjax = new Ajax.Request( url,
                                       { method: 'get',
                                         parameters: pars,
                                         onSuccess: update_grade_func,
					 onFailure: failed_update_grade_func
                                        });
	return false;
}

function update_grade(div,object,grade,res) {
        var json;
        try
        {
            json = eval("(" + res.responseText + ")");
        }
        catch (e)
        {
		alert('Betygsättning misslyckades!');
		div.style.visibility='hidden';
		return false;
	}	

	if(json.status == 'OK') {
                get_node_by_class(div.parentNode,'SetGradeImg').src='http://images.filmtipset.se/Images/grade_'+grade+'_seen.gif';
		if(grade > 0) {
			get_node_by_class(div.parentNode,'SetGradeSeen').style.display='inline';
			get_node_by_class(div.parentNode,'SetGradeCalc').style.display='none';
			get_node_by_class(div.parentNode,'SetGradeRemove').style.display='inline';
		} else {
			get_node_by_class(div.parentNode,'SetGradeSeen').style.display='none';
			get_node_by_class(div.parentNode,'SetGradeCalc').style.display='inline';

		}
	} else {
		alert('Betygsättning misslyckades!');
	}
	div.style.visibility='hidden';
	return false;
}

function Left(elem){	
	var x=0;
	if (elem.calcLeft)
		return elem.calcLeft;
	var oElem=elem;
	while(elem){
		 if ((elem.currentStyle)&& (!isNaN(parseInt(elem.currentStyle.borderLeftWidth)))&&(x!=0))
		 	x+=parseInt(elem.currentStyle.borderLeftWidth);
		 x+=elem.offsetLeft;
		 elem=elem.offsetParent;
	  } 
	oElem.calcLeft=x;
	return x;
	}

function Top(elem){
	 var x=0;
	 if (elem.calcTop)
	 	return elem.calcTop;
	 var oElem=elem;
	 while(elem){		
	 	 if ((elem.currentStyle)&& (!isNaN(parseInt(elem.currentStyle.borderTopWidth)))&&(x!=0))
		 	x+=parseInt(elem.currentStyle.borderTopWidth); 
		 x+=elem.offsetTop;
	         elem=elem.offsetParent;
 	 } 
 	 oElem.calcTop=x;
 	 return x;
 	 
}



function check_hide (event,obj) {

	var bodyScrollTop=document.documentElement&&document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop;
	var bodyScrollLeft=document.documentElement&&document.documentElement.scrollLeft?document.documentElement.scrollLeft:document.body.scrollLeft;
	var mouseX=event.pageX?event.pageX-bodyScrollLeft:event.clientX-document.body.clientLeft;
	var mouseY=event.pageY?event.pageY-bodyScrollTop:event.clientY-document.body.clientTop;

	var totalScrollLeft=0;
	var totalScrollTop=0;	
	var iterElem=event.target?event.target:event.srcElement;;
	while(iterElem) {
		if(!isNaN(parseInt(iterElem.scrollTop)))
			totalScrollTop+=parseInt(iterElem.scrollTop);
		if(!isNaN(parseInt(iterElem.scrollLeft)))
			totalScrollLeft+=parseInt(iterElem.scrollLeft);
		iterElem=iterElem.parentNode;			
	}
	var boxLeft=Left(obj)-totalScrollLeft;
	var boxRight=parseInt(Left(obj)+obj.offsetWidth)-totalScrollLeft;
	var boxTop=Top(obj)-totalScrollTop;
	var boxBottom=parseInt(Top(obj)+obj.offsetHeight)-totalScrollTop;

	if(mouseX < boxLeft+2 || mouseY < boxTop+2 || mouseX > boxRight-2 || mouseY > boxBottom-2) {
		obj.style.visibility='hidden';
	}
}



  function set_visible_by_class (node,className) {
	for(var x=0; node.childNodes[x]; x++ ) {
	   if(node.childNodes[x].className==className) {
		node.childNodes[x].style.visibility='visible';
	   }
        }
  }
  function get_node_by_class (node,className) {
	for(var x=0; node.childNodes[x]; x++ ) {
	   if(node.childNodes[x].className==className) {
		return node.childNodes[x];
	   }
           var sub_node = get_node_by_class(node.childNodes[x],className); 
           if(sub_node && sub_node.className==className) {
                return sub_node;
           }
        }
  }

