onLoadFunctionList=[];
function performOnLoadFunctions(){
	for(var i=0;i<onLoadFunctionList.length;i++){
		onLoadFunctionList[i]();
	}
}
/*
function refreshMail() {
	setInterval('go(\'/notif.php\', \'notif-mail\');', 5000);
}
var http = Array();
var i = 0;
function go(url,id)	{
  i++;
  http[i]=getXmlHttpRequest();
  http[i].open("GET", url , true);
  http[i].onreadystatechange = function() {handleHttpResponse(i,id);};
  http[i].send(null);
}
function handleHttpResponse(i,id){
	if (http[i].readyState == 4){
		if (http[i].status == 200){
		document.getElementById(id).innerHTML = http[i].responseText;  
		}
	} 
}
*/
function ref(instance_or_id){
	return(typeof(instance_or_id)=="string")?document.getElementById(instance_or_id):instance_or_id;
}
function _getId(id){
	return document.getElementById(id);
}
function _getObj(name) {
	if (document.getElementById) {
		this.obj = document.getElementById(name);
		this.style = document.getElementById(name).style;
	} else if (document.all) {
		this.obj = document.all[name];
		this.style = document.all[name].style;
	}
}
function getXmlHttpRequest(){
	
	var httpRequest = false;

    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        httpRequest = new XMLHttpRequest();
        if (httpRequest.overrideMimeType) {
            //httpRequest.overrideMimeType('text/xml');
  			httpRequest.overrideMimeType("text/html");
        }
    }
    else if (window.ActiveXObject) { // IE
        try {
            httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) {
            try {
                httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e) {}
        }
    }

    if (!httpRequest) {
        alert("Your navigator doesn't handle AJAX, please use Internet explorer, Safari or firefox");
        return false;
    }
    
    return httpRequest;

}
function getUrl(url,async,opt_handleStateChange){
	var xmlHttpReq=getXmlHttpRequest();
	if(!xmlHttpReq)
		return;
	if(opt_handleStateChange){
		xmlHttpReq.onreadystatechange=function(){
			opt_handleStateChange(xmlHttpReq);
		};
	}else{
		xmlHttpReq.onreadystatechange=function(){;}
	}
	xmlHttpReq.open("GET",url,async);
	xmlHttpReq.send(null);
}
function getDisplayStyleByTagName(o){
	var n=o.nodeName.toLowerCase();
	return(n=="span"||n=="img"||n=="a")?"inline":(n=='tr'||n=='td'?"":"block");
}
function replaceContentCat(idContent, idContainer) {
	var divContent = _getId(idContent);
	var divContainer = _getId(idContainer);	
	var divMenu = _getId('linkCat-'+idContent);
	var flag = (divContainer.style.display == 'none') ? 1 : '';	
	divContainer.style.display = (flag)? 'block' : 'none';
	divMenu.className = 'starter_active';
	if (this.lastIdContent && this.lastIdContent != idContent) {
		var divLastMenu = _getId('linkCat-'+this.lastIdContent);
		divContainer.style.display = 'block';
		divLastMenu.className = 'starter_normal';
	}
	setInnerHTML(idContainer, divContent.innerHTML);
	this.lastIdContent = idContent;
}
function replaceContent(idContent, idContainer) {
	if (!_getId(idContent)) return false;
	var divContent = _getId(idContent);
	var divContainer = _getId(idContainer);
	divContainer.style.display = 'block';
	setInnerHTML(idContainer, divContent.innerHTML);
}
function buildUrl(url,params) {
	var pairs=new Array();
	var result=url;
	if(params){
		for(var key in params){
			pairs.push(key+"="+encodeURIComponent(params[key].toString()));
		}
		result+="?"+pairs.join("&");
	}
	return result;
}
function redirect(url,params){
	document.location.href=buildUrl(url,params);
}
function setInnerHTML(div_id,value){
	var dstDiv=_getId(div_id);
	dstDiv.innerHTML=value;
}
function isPanelExpanded(panel){
	return hasClass(panel,'expanded');
}
function expandPanel(panel){
	if(!isPanelExpanded(panel)){
		addClass(panel,'expanded');
		fireInlineEvent(panel,'expanded');
	}
}
function collapsePanel(panel){
	if(isPanelExpanded(panel)){
		removeClass(panel,'expanded');
		fireInlineEvent(panel,'collapsed');
	}
}
function togglePanel(panel){
	if(isPanelExpanded(panel)){
		collapsePanel(panel);
	}else{
		expandPanel(panel);
	}
}
function fireInlineEvent(element,eventName){
	var target=ref(element);
	if(target[eventName]==null){
		var attributeName='on'+eventName.toLowerCase();
		var attribute=target.attributes.getNamedItem(attributeName);
		if(attribute){
			target[eventName]=function(){
				eval(attribute.value);
			}
		}
	}
	if(target[eventName])target[eventName]();
}
function ExpandHideCollaps(idTo, idFrom) {
	if (idFrom) {
		var divFrom = new _getId(idFrom);
		var flag = (divFrom.style.display == 'none') ? 1 : 0;
		divFrom.style.display = (flag)? 'block' : 'none';
	}
	var divTo = new _getId(idTo);
	var flag = (divTo.style.display == 'none') ? 1 : 0;
	divTo.style.display = (flag)? 'block' : 'none';
}
function showDiv(divName){
	var tempDiv=ref(divName);
	if(!tempDiv){return;}
	if(hasClass(tempDiv,"wasinline")){
		tempDiv.style.display="inline";
		removeClass(tempDiv,"wasinline");
	}else if(hasClass(tempDiv,"wasblock")){
		tempDiv.style.display="block";
		removeClass(tempDiv,"block");
	}else{
		tempDiv.style.display=getDisplayStyleByTagName(tempDiv);
	}
}
function hideDiv(divName){
	var tempDiv=ref(divName);
	if(!tempDiv){return;}
	if(tempDiv.style.display=="inline"){
		addClass(tempDiv,"wasinline");
	}else if(tempDiv.style.display=="block"){
		addClass(tempDiv,"wasblock");
	}
	tempDiv.style.display="none";
}
function cbUnSwitchAll(id) {
	var inputs = document.getElementsByTagName('input');
	var input;
	for (i = 0; i < inputs.length; i++) {
		input = inputs[i];
		if (input.type == 'checkbox' && input.id.substr(0, id.length) == id) {
			removeClass(input.parentNode.parentNode,'checked');
			input.checked = false;
		}
	}
}
function cbSwitchAll(id, value) {
	var inputs = document.getElementsByTagName('input');
	var input;
	for (i = 0; i < inputs.length; i++) {
		input = inputs[i];
		if (input.type == 'checkbox' && input.id.substr(0, id.length) == id) {
			if (input.checked) {
				removeClass(input.parentNode.parentNode,'checked');
				input.checked = false;
			} else {
				addClass(input.parentNode.parentNode,'checked');
				input.checked = true;
			}
		}
	}
}
function cbSwitch(id) {	
	var inputs = document.getElementsByTagName('input');
	var input;
	for (i = 0; i < inputs.length; i++) {
		input = inputs[i];
		if (input.type == 'checkbox' && input.id.substr(0, id.length) == id) {			
			if (input.checked) {
				removeClass(input.parentNode.parentNode,'checked');
				input.checked = false;
			} else {
				addClass(input.parentNode.parentNode,'checked');
				input.checked = true;
			}
		}
	}
}
function toggleClass(element,className){
	var e=ref(element);
	if(!e)return;
	if(hasClass(e,className)){
		removeClass(e,className);
	}else{
		addClass(e,className);
	}
}
function changeClass(id, classe) {
	var div = _getId(id);
	div.className= classe;
} 
function hasClass(element,_className){
	if(!element){
		return;
	}
	var upperClass=_className.toUpperCase();
	if(element.className){
		var classes=element.className.split(' ');
		for(var i=0;i<classes.length;i++){
			if(classes[i].toUpperCase()==upperClass){
				return true;
			}
		}
	}
	return false;
}
function addClass(element,_class){
	if(!hasClass(element,_class)){
		element.className+=element.className?(" "+_class):_class;
	}
}
function getClassList(element){
	if(element.className){
		return element.className.split(' ');
	}else{
		return[];
	}
}
function removeClass(element,_class){
	var upperClass=_class.toUpperCase();
	var remainingClasses=[];
	if(element.className){
		var classes=element.className.split(' ');
		for(var i=0;i<classes.length;i++){
			if(classes[i].toUpperCase()!=upperClass){
				remainingClasses[remainingClasses.length]=classes[i];
			}
		}
		element.className=remainingClasses.join(' ');
	}
}
function urlEncodeDict(dict){
	var result="";
	for(var i=0;i<dict.length;i++){
	result+="&"+encodeURIComponent(dict[i].name)+"="+encodeURIComponent(dict[i].value);
	}
	return result;
}
function updateCharCount_js(charCount_id,label_id,textArea,maxChars,messages){
	if(textArea.value.length>maxChars){
		if(_getId(label_id).innerHTML!=messages["exceeded"]){
			_getId(label_id).innerHTML=messages["exceeded"];
		}
		_getId(charCount_id).value=textArea.value.length-maxChars;
	}else{
		if(_getId(label_id).innerHTML!=messages["remaining"]){
			_getId(label_id).innerHTML=messages["remaining"];
		}
		_getId(charCount_id).value=maxChars-textArea.value.length;
	}
}
function verifCheckbox(form) {
    var myCB = form.getElementsByTagName("input")
  	for (var i=0; i<=myCB.length-1; i++) {
    	if (myCB[i].type.toLowerCase()=="checkbox"){
		    if(myCB[i].checked)
		    	return true;
    	}
  	}
    return false;
}
function verifEmptyForm(form) {
    var myText = form.getElementsByTagName("input")
  	for (var i=0; i<=myText.length-1; i++) {
    	if (myText[i].type.toLowerCase()=="text"){
		    if(myText[i].value==null)
		    	return false;
    	}
  	}
    return true;
}
function postSendShowreel_js(form_id,idResponse){
	var form = document.forms[form_id];	
	if(postShowreelValidator(form,idResponse)){
		var add_button=form.send_showreel_button;
		add_button.value="ok";
		form.mailfrom.disabled=true;
		form.mailto.disabled=true;
		form.name.disabled=true;
		form.text.disabled=true;
		add_button.disabled=true;
	}
}
function postShowreelValidator(form,idResponse){
	if(!verifEmptyForm(form))	{
		alert("empty");
		return false;
	}
	showLoading("response");
	postFormByForm(form,true,SendShowreelResponse);
	return true;
}
function SendShowreelResponse(xmlHttpRequest) {
	var response_str 	= xmlHttpRequest.responseText;
	var catLink  		= response_str.substr(0,response_str.indexOf(" "));
	var response_code 	= response_str.substr(response_str.indexOf(" ")+1);
	//divReplace = _getId('response-'+catLink);
	divReplace = _getId("response");
	divReplace.innerHTML=response_code;
}
function postDl_js(form_id){
	var form = document.forms[form_id];
	form.dl_button.value = "Wait during traitment";
	if(dlValidator(form)){
		form.dl_button.disabled=true;
	}
}
function dlValidator(form){
	if(!verifCheckbox(form))	{
		form.dl_button.value = "Dowload your selection";
		alert("Please select a movie.");
		return false;
	}
	showLoading("containerDl");
	postFormByForm(form,true,dlResponse);
	return true;
}
function dlResponse(xmlHttpRequest) {
	_getId('btn_dl_selection').value = "Dowload your selection";
	_getId('btn_dl_selection').disabled = false;
	divReplace = _getId('containerDl');
	divReplace.style.display = 'block';
	divReplace.innerHTML=xmlHttpRequest.responseText;
}
function postCat_js(form_id){
	var form = document.forms[form_id];
	postFormByForm(form,true,catResponse);
	return true;
}
function catResponse(xmlHttpRequest) {
	replaceDivContents(xmlHttpRequest, 'containerCat');
}
function postComment_js(comment_form_id,messages){
	if(isLoggedIn==false) {
		alert(messages["not_logged"]);
		return false;
	}
	var form = document.forms[comment_form_id];
	if(CommentValidator(form,comment_form_id,messages)){
		var add_button=form.add_comment_button;
		add_button.value=messages["add"];
		form.comment.disabled=true;
		add_button.disabled=true;
	}
}
function CommentValidator_js(comment_form,comment_form_id,messages){
	var comment=comment_form.comment;
	var comment_button=comment_form.comment_button;
	if(comment.value.length==0||comment.value==null)	{
		alert(messages["empty"]);
		comment.disabled=false;
		comment.focus();
		return false;
	}
	if(comment.value.length>500)	{
		alert(messages["toolong"]);
		comment.disabled=false;
		comment.focus();
		return false;
	}
	postFormByForm(comment_form,true,commentResponse);
	return true;
}
function postForm(formName,async,successCallback){
	var form=document.forms[formName];
	return postFormByForm(form,async,successCallback);
}
function replaceDivContents(xmlHttpRequest,dstDivId){
	var dstDiv=_getId(dstDivId);
	dstDiv.style.display = 'block';
	dstDiv.innerHTML=xmlHttpRequest.responseText;
}
function postFormByForm(form,async,successCallback){
	var formVars=new Array();
	for(var i=0;i<form.elements.length;i++)	{
		var formElement=form.elements[i];
		/// Special handling for checkboxes and radios(we need an array of selected checkboxes..)!
		if((formElement.type=='radio'||formElement.type=='checkbox')&&!formElement.checked){
			continue;
		}
		var v=new Object;
		v.name=formElement.name;
		v.value=formElement.value;
		formVars.push(v);
	}
	postUrl(form.action,urlEncodeDict(formVars),async,execOnSuccess(successCallback));
}
function postUrl(url,data,async,stateChangeCallback){
	var xmlHttpReq=getXmlHttpRequest();
	if(!xmlHttpReq)
		return;
	xmlHttpReq.open("POST",url,async);
	xmlHttpReq.onreadystatechange=function() {
		stateChangeCallback(xmlHttpReq);
	};
	xmlHttpReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
	xmlHttpReq.send(data);
}
function execOnSuccess(stateChangeCallback,opt_successCallback,opt_divId){
	return function(xmlHttpReq)	{
		if(xmlHttpReq.readyState==4&&xmlHttpReq.status==200){
			if(opt_divId){
				stateChangeCallback(xmlHttpReq,opt_successCallback,opt_divId);
			}else{
				stateChangeCallback(xmlHttpReq,opt_successCallback);
			}
		}
	};
}  
function ajaxLoader(url,id) {   
	var xmlHttpReq=getXmlHttpRequest();
	if(!xmlHttpReq)
		return;
   if (xmlHttpReq) { 
        xmlHttpReq.onreadystatechange = function() { 
             if (xmlHttpReq.readyState == 4 && xmlHttpReq.status == 200) { 
             	
                  div_id = document.getElementById(id); 
                  var obj=xmlHttpReq.responseXML;
                  div_id.innerHTML = xmlHttpReq.responseText; 
					
             }
        }
        xmlHttpReq.open("GET", url, true);
        xmlHttpReq.send(null);
   }
} 
function showLoading(div_id){
	var temp_HTML='<table width="100%" height="100%"><tr><td align="center" valign="center"><img src="/img/loadingAnimation.gif"></td></tr></table>';
	//var temp_HTML='<center><img src=/img/loadingAnimation.gif><center>';
	_getId(div_id).style.display = 'block';
	_getId(div_id).innerHTML=temp_HTML;
	document.body.focus();
}
function commentResponse_js(xmlHttpRequest,messages){
	var response_str 	= xmlHttpRequest.responseText;
	var response_code 	= response_str.substr(0,response_str.indexOf(" "));
	var form_id 		= response_str.substr(response_str.indexOf(" ")+1);
	var form 			= document.forms[form_id];
	var dstDiv 			= form.add_comment_button;
	var commentDiv 		= form.comment;	
	if(response_code=="OK"){
		dstDiv.value=messages["ok"];
		dstDiv.disabled=true;
	}else if(response_code=="PENDING"){
		dstDiv.value=messages["pending"]
		dstDiv.disabled=true;
	}else if(response_code=="LOGIN"){
		dstDiv.disabled=false;
	}else if(response_code=="EMAIL"){
		if(confirm(messages["email"])){
			window.location="/email_confirm"
		}
		dstDiv.disabled=false;
	}else{
		if(response_code=="BLOCKED"){
			dstDiv.disabled=true;
		}else if(response_code=="TOOSOON"){
			dstDiv.disabled=false;
			alert(messages["toosoon"]);
		}else if(response_code=="TOOLONG"){
			alert(messages["toolong"]);
			dstDiv.disabled=false;
			commentDiv.disabled=false;
		}else if(response_code=="TOOSHORT"){
			alert(messages["tooshort"]);
			dstDiv.disabled=false;
			commentDiv.disabled=false;
			commentDiv.focus();
		}else if(response_code=="FAILED"){
			dstDiv.disabled=true;
		}else if(response_code=="FAILADDED"){
			dstDiv.disabled=true;
		}else if(response_code=="CAPTCHAFAIL"){
			alert(messages["catpchaFail"]);
			dstDiv.disabled=false;
		}else{
			dstDiv.disabled=false;
		}
		dstDiv.value=messages["default"];
	}
}
var UT_RATING_IMG='icn_star_full_20x20';
var UT_RATING_IMG_HOVER='/img/stars-full.png';
var UT_RATING_IMG_HALF='icn_star_half_20x20';
var UT_RATING_IMG_BG='icn_star_empty_20x20';
var UT_RATING_IMG_REMOVED='/img/stars-empty.png';
function SendRating(ratingElementId,maxStars,objectName,formName,ratingMessageId,componentSuffix,messages,starCount,callback){
	this.ratingElementId=ratingElementId;
	this.maxStars=maxStars;
	this.objectName=objectName;
	this.formName=formName;
	this.ratingMessageId=ratingMessageId
	this.componentSuffix=componentSuffix
	this.messages=messages;
	this.callback=callback;
	this.starTimer=null;
	this.starCount=0;
	if(starCount){
		this.starCount=starCount;
		var that=this;
		onLoadFunctionList.push(function(){that.drawStars(that.starCount,true);});
	}
	function showStars(starNum,skipMessageUpdate){
		this.clearStarTimer();
		this.greyStars();
		this.colorStars(starNum);
		if(!skipMessageUpdate)
			this.setMessage(starNum);
	}
	function setMessage(starNum){
		if(starNum>0){
			if(!this.savedMessage){
				this.savedMessage=_getId(this.ratingMessageId).innerHTML;
			}
			_getId(this.ratingMessageId).innerHTML=this.messages[starNum-1];
		}else if(this.savedMessage){
			_getId(this.ratingMessageId).innerHTML=this.savedMessage;
		}
	}
	function colorStars(starNum){
		var fullStars=Math.floor(starNum+0.25);
		var halfStar=(starNum-fullStars>0.25);
		for(var i=0;i<fullStars;i++){
			removeClass(_getId('star_'+this.componentSuffix+"_"+(i+1)),UT_RATING_IMG_HALF);
			removeClass(_getId('star_'+this.componentSuffix+"_"+(i+1)),UT_RATING_IMG_BG);
			addClass(_getId('star_'+this.componentSuffix+"_"+(i+1)),UT_RATING_IMG);
		}
		if(halfStar){
			removeClass(_getId('star_'+this.componentSuffix+"_"+(i+1)),UT_RATING_IMG);
			removeClass(_getId('star_'+this.componentSuffix+"_"+(i+1)),UT_RATING_IMG_BG);
			addClass(_getId('star_'+this.componentSuffix+"_"+(i+1)),UT_RATING_IMG_HALF);
		}
	}
	function greyStars(){
		for(var i=0;i<this.maxStars;i++){
			removeClass(_getId('star_'+this.componentSuffix+"_"+(i+1)),UT_RATING_IMG);
			removeClass(_getId('star_'+this.componentSuffix+"_"+(i+1)),UT_RATING_IMG_HALF);
			addClass(_getId('star_'+this.componentSuffix+"_"+(i+1)),UT_RATING_IMG_BG);
		}
	}
	function setStars(starNum){
		this.starCount=starNum;
		this.drawStars(starNum);
		document.forms[this.formName]['rating'].value=this.starCount;
		var ratingElementId=this.ratingElementId;
		that=this;
		postForm(this.formName,true,function(req){
			replaceDivContents(req,ratingElementId);
			if(that.callback){
				that.callback();
			}
		}
		);
	}
	function drawStars(starNum,skipMessageUpdate){
		this.starCount=starNum;
		this.showStars(starNum,skipMessageUpdate);
	}
	function clearStars(){
		this.starTimer=window.setTimeout(this.objectName+".resetStars()",300);
	}
	function resetStars(){
		this.clearStarTimer();
		if(this.starCount)
			this.drawStars(this.starCount);
		else
			this.greyStars();
		this.setMessage(0);
	}
	function clearStarTimer(){
		if(this.starTimer){
			window.clearTimeout(this.starTimer);
			this.starTimer=null;
		}
	}
	this.clearStars=clearStars;
	this.clearStarTimer=clearStarTimer;
	this.greyStars=greyStars;
	this.colorStars=colorStars;
	this.resetStars=resetStars;
	this.setStars=setStars;
	this.drawStars=drawStars;
	this.showStars=showStars;
	this.setMessage=setMessage;
}
	
ratingHoverTimers=[];
function ratingHoverOver(componentSuffix){
	if(componentSuffix==""){
		componentSuffix=="reserved"
	}
	_clearHoverTimer(componentSuffix);
	hideDiv('defaultRatingMessage'+componentSuffix);
	showDiv('hoverMessage'+componentSuffix);
}
function ratingHoverOut(componentSuffix){
	if(componentSuffix==""){
		componentSuffix=="reserved"
	}
	ratingHoverTimers[componentSuffix]=window.setTimeout(function(){_ratingHoverClear(componentSuffix);},300);
}
function _ratingHoverClear(componentSuffix){
	if(componentSuffix==""){
		componentSuffix=="reserved"
	}
	_clearHoverTimer();
	hideDiv('hoverMessage');
	showDiv('defaultRatingMessage');
}
function _clearHoverTimer(opt_componentSuffix){
	if(opt_componentSuffix==""){
		opt_componentSuffix=="reserved"
	}
	if(ratingHoverTimers[opt_componentSuffix]){
		window.clearTimeout(ratingHoverTimers[opt_componentSuffix]);
		ratingHoverTimers[opt_componentSuffix]=null;
	}
}
