var clickedImage = "";
var global_v = "";
var global_addCommentState = "";
var global_defSearchbox = "";
var global_lastQuery = "";
var global_currentTab = "";
var global_path = ""; 

	

var feedbackVoteCallback = function(response){
	response = response.substring(0,1);	
	if (response != "0") {
		elem = dojo.query("[id$='lVoteTitle']")[0];
    	dojo.style(elem,{display:'none'});
			
		// xx needed or dojo does not find elem in the damn IE 
		elem = dojo.query("[id$='xxdisplayVote"+response+"']")[0];		
		elem.innerHTML = Number(elem.innerHTML)+1;
		var textBigger = dojo.animateProperty({
      		node: elem,duration: 350,
      		properties: {
        		fontSize: {end: 35, unit: "px"}
      		}
    	});
    	var textSmaller = dojo.animateProperty({
      		node: elem,duration: 350,
      		properties: {
        		fontSize: {end: 20, unit: "px"}
      		}
    	});
    	var fadeLinks = dojo.fadeOut({
    		node: "voteLinks", 
    		duration:500,
    		onEnd:function() {
		    	elem = dojo.byId("voteLinks");
		    	phrase = dojo.query("[id$='phraseC86']")[0];
				elem.innerHTML = phrase.innerHTML;
				dojo.addClass(elem, "voteTagThanks");
    			var fadeThanks = dojo.fadeIn({node: "voteLinks", duration:500});
    			fadeThanks.play();		
    		}
    	});	
    	fadeLinks.play();
    	
		dojo.fx.chain([textBigger,textSmaller]).play();
    	
    	
		elem = dojo.query("[id$='bRefreshVote"+response+"']")[0];
		elem.click();	
			
	}
	
} 

/*  FOLLOW		*/

var followCallback1 = function(response) {
	response = response.substring(0,1);	
	if (response != "0") {
		elem = dojo.query("[id$='bRefreshMetoo']")[0];
		if (elem) elem.click();
	}
	elemOff = dojo.query("[id$='iconFollowerOffYN']")[0];
	//dojo.fadeOut({node:elem, duration:250}).play();
	dojo.style(elemOff, {display:'none'});
	
	elem = dojo.query("[id$='iconFollower']")[0];
	// special animation for IE since it displays the standard animation badly
	if (dojo.isIE) {
		dojo.style(elem, {display:'',filter:''});
		dojo.fadeIn({node: elem, duration:500}).play();
	} else {
		dojo.style(elem, {width:'1px',height:'1px',display:'',opacity:'100'});
		//var e1 = dojo.fadeOut({node: elemOff, duration:250});
		var e2 = dojo.animateProperty({
      		node: elem,duration: 500,
      		properties: {
        		width: {end: 32, unit: "px"},
        		height: {end: 32, unit: "px"}
      		}
    	});  
		var e3 = dojo.animateProperty({
      		node: elem,duration: 350,
      		properties: {
        		width: {end: 24, unit: "px"},
        		height: {end: 24, unit: "px"}
      		}
    	});
    	dojo.fx.chain([e2,e3]).play();	
	}
}

var followCallback2 = function(response) {
	response = response.substring(0,1);	
	if (response != "0") {
		elem = dojo.query("[id$='bRefreshMetoo']")[0];
		if (elem) elem.click();
	}
	elem = dojo.query("[id$='iconFollower']")[0];
//	dojo.style(elem, {display:'none'});
	dojo.fadeOut({node: elem, duration:500}).play(); 

}

function follow(unid, a, user, lang, noeffect) {
		if (noeffect) {
				dojo.xhrGet({url : '(follow)?Open&unid='+unid+'&a='+a+"&u="+escape(user)+"&l="+lang,
					error : function(response, ioArgs) {
					console.log("error", response, ioArgs);}	
				});
/*			jbuss 19 apr: bad logic due the sync=true is needed here -> disabled for the time being
			if (a == "a") {
				elem = dojo.query("[id$='iconFollower']")[0];
				dojo.style(elem, {visibility:'visible',opacity:'100'});
				dojo.xhrGet({url : '(follow)?Open&unid='+unid+'&a='+a+"&u="+escape(user)+"&l="+lang,
					sync: true,
					error : function(response, ioArgs) {
					console.log("error", response, ioArgs);}	
				});
			}*/
		} else {
		if (a == "a") {
			dojo.xhrGet({url : '(follow)?Open&unid='+unid+'&a='+a+"&u="+escape(user)+"&l="+lang,
				load : followCallback1,
				error : function(response, ioArgs) {
				console.log("error", response, ioArgs);}	
			});
		} else {
			dojo.xhrGet({url : '(follow)?Open&unid='+unid+'&a='+a+"&u="+escape(user)+"&l="+lang,
				load : followCallback2,
				error : function(response, ioArgs) {
				console.log("error", response, ioArgs);}	
			});		
		}	
		}
}

/* vote */

function feedbackVote(unid, posneg, tag, user, lang) {
	//alert("vote "+unid+" posneg="+posneg+" tag="+tag);
	//var effect = dojo.fadeOut({node: "voteLinks"});
	//effect.play();
	dojo.cookie("v"+unid, "1", {expires:365});
	if (tag == "") {
		dojo.xhrGet({
			url : '(vote)?Open&unid='+unid+'&p='+posneg+'&t='+escape(tag)+"&u="+escape(user)+"&l="+lang,
			load : followCallback1,
			error : function(response, ioArgs) {
				console.log("error", response, ioArgs);
			}	
		});
	} else {
		dojo.xhrGet({
			url : '(vote)?Open&unid='+unid+'&p='+posneg+'&t='+escape(tag)+"&u="+escape(user)+"&l="+lang,
			load : feedbackVoteCallback,
			error : function(response, ioArgs) {
				console.log("error", response, ioArgs);
			}	
		});
	} 	
}

/* VALIDATION */

function checkValidation(id, msg, type, p, tryfocus, outline) {
	// type = 1 -> check if empty
	// other not used yet
	var elem = dojo.byId(id);
	var value = elem.value;
	var area = elem.value;
	//alert("id="+id+" value=["+value+"]");
	var result = true;
	if (type == "!=") {
		result = (value != p);
	}
	if (!result && outline) {
		dojo.addClass(elem, "validationFailed");
	/*	dojo.style(elem, {border:"1px solid #de3421"});
		var e1 = dojo.animateProperty({
      		node: elem,duration: 350,
      		properties: {
        		borderWith: {end: 6, unit: "px"}
      		}
    	});
    	var e2 = dojo.animateProperty({
      		node: elem,duration: 350,
      		properties: {
        		borderWith: {end: 0, unit: "px"}
      		}
    	});
    	dojo.fx.chain([e1,e2]).play();*/  
	}
	if (!result) alert(msg);
	if (!result && tryfocus) elem.focus();
	return result;
}

function homeTabMouseover(elem) {
	dojo.addClass(elem, 'homeSectionTabHover')
}

function homeTabMouseout(elem) {
	dojo.removeClass(elem, 'homeSectionTabHover')
}

function homeTab(id) {
	global_currentTab = id;
	nr = id.substring(id.length-1);
	elem = dojo.query("[class$='homeSectionTabActive']")[0];
	dojo.removeClass(elem, 'homeSectionTabActive');
	dojo.addClass(dojo.byId(id+"Tab"), "homeSectionTabActive");
	
	elem = dojo.query("[class='homeSections']");
	for (i = 0; i < elem.length; i++) {
		if (elem[i].id == id) 
			dojo.style(elem[i], {display:''});
		else
			dojo.style(elem[i], {display:'none'});
	}
}

var googleTranslateIdList = new Array();
var googleTranslateElemList = new Array();
var googleLangkey = "en";
var googleCounter = 0;

function googleTranslateAddId(id) {
	googleTranslateIdList.push(id);
}


function googleTranslateRunner() {
	//console.log("translate lang="+googleLangkey+" i="+googleCounter);

	var elem = googleTranslateElemList[googleCounter];
	if (elem) {
		//console.log("elem id "+elem.id);
		var t = elem.innerHTML;
		//console.log("translate: "+t);
		//elem.innerHTML = "<b>translating...</b> "+elem.innerHTML;
		google.language.translate(t, "", googleLangkey, function(result) {
				if (!result.error) {
					//console.log("google ok");
					elem.innerHTML = result.translation;
   				} else {
   					//console.log("google translate error: "+result.error);
   				}
   				googleCounter++
   				googleTranslateRunner();
			});	
	} else {
		//console.log("No elem found for "+googleTranslateElemList[googleCounter]);
		dojo.style(dojo.query("[id*='labelTranslatedMsg']")[0], {display:''});	
	}    
}

function googleTranslate(now, lang) {
//	var langkey = context.getLocaleString();
//	langkey = langkey.substr(0,2);
	// console.log("googleTranslate now="+now+" lang="+lang);
	if (lang) googleLangkey = lang;
	
	// transfer list of IDs to list of actual elements
	// therey may be more than one element having an ID ending on one ID of the list 
	for (i = 0; i < googleTranslateIdList.length; i++) {
		var elems = dojo.query("[id*="+googleTranslateIdList[i]+"]");
		// console.log("list elem "+googleTranslateIdList[i]+" elems.length "+elems.length);
		for (j = 0; j < elems.length; j++) {
			//alert("add id "+elems[j].id);
			googleTranslateElemList.push(elems[j]);
		}		
	}
	
	dojo.style(dojo.query("[id*='googleBranding']")[0], {display:''});
	if (now) googleTranslateRunner(); else  google.setOnLoadCallback(googleTranslateRunner);        
    
}

/*
	CREATE FEEDBACK CHECK RELATED CONTENT
*/

var checkRelatedTimer;
var checkRelatedInputElemID;
var checkRelatedLastV;
var checkRelatedExecutedFor;
var checkRelatedContainer;
var checkRelatedButtonLabelBackup;
var checkRelatedIsFromButton;

function checkRelated() {
	// gets input value and checks for related content
	// returns true if a check was performed
	var v = dojo.byId(checkRelatedInputElemID).value;
	v = dojo.trim(v);
	// work only if we didn't checked for that value yet
	if (v && v == checkRelatedLastV) {
//		console.log("checkRelated v="+v+" lastV="+checkRelatedLastV+" last="+checkRelatedExecutedFor+" button "+isFromButton);	
		if (v != checkRelatedExecutedFor) {
			checkRelatedContainer = dojo.byId("relatedPreviewContainer");
			var loadingImg = dojo.byId("relatedLoading");
			if (loadingImg) dojo.style(loadingImg, {display:''});
			var tmpurl = global_path+"/ajax_getRelated.xsp?t=c&te="+escape(v);
			dojo.xhrGet({url:tmpurl,load:function(data) {
					b = dojo.query("[id*='bCreateFeedback']")[0];
					//console.log("button "+b.id+" isfrombutton "+checkRelatedIsFromButton);
					b.disabled = false;					
					if (checkRelatedButtonLabelBackup) b.innerHTML = checkRelatedButtonLabelBackup;
					if (data) {
						dojo.style(checkRelatedContainer, {display:''});
						var button = dojo.query("[id*='bCreateFeedback']")[0];
						button.enabled = false;
						dojo.byId(checkRelatedInputElemID).focus();
						checkRelatedContainer.innerHTML = data;						
						//console.log("data "+data);
					} else {
						//dojo.fadeOut({node:checkRelatedContainer,duration:2000}).play();
						dojo.style(checkRelatedContainer, {display:'none'});
						if (checkRelatedIsFromButton) {
							checkRelatedIsFromButton = false;
							b.click();							
						}
					}					
				},
				error:function(response, ioArgs){
					if (checkRelatedIsFromButton) {
						checkRelatedIsFromButton = false;
    	 			   b = dojo.query("[id*='bCreateFeedback']")[0];
					   b.disabled = false;					
						b.click();
					}
    			}
			});
			checkRelatedExecutedFor = v;
		}
	} 
	else {
		checkRelatedLastV = v;
	}
	checkRelatedTimer = window.setTimeout("checkRelated()", 500);
//	checkRelatedIsFromButton = false;		
}

function createFeedbackCheckRelated(inputElemID, event) {
	if (event == "focus") {
		checkRelatedInputElemID = inputElemID;
		checkRelatedTimer = window.setTimeout("checkRelated()", 500);
	} else if (event == "blur") {
		window.clearTimeout(checkRelatedTimer);
//		if (checkRelatedContainer) dojo.byId(checkRelatedInputElemID).parentNode.removeChild(checkRelatedContainer);
//		checkRelatedContainer = null;
//		checkRelatedExecutedFor = null;
	}

}


/*
	DOMINO LOGIN

*/

function dominoLoginDialog() {
	dojo.byId("loginMsg").style.visibility = "hidden";
	dijit.byId("loginDialog").show();
}

function dominoLogin(){
	// inspired by http://www.qtzar.com/blogs/qtzar.nsf/d6plinks/DSLH-7QPS3G
	var data = new Object();
	data.username = dojo.byId("username").value;
	data.password = dojo.byId("password").value;
	data.RedirectTo = dojo.byId("RedirectTo").value;
	dojo.byId("bLogin").disabled = true;
	
	dojo.xhrPost({
	    url: '/names.nsf?login',
    	content: data,
    	load: function (data) {
    		if( String(data).substring(0,3) == "GIF") {
    			dojo.byId("loginMsg").style.visibility = "visible";
    			dojo.byId("loginMsg").style.color = "green";
    			dojo.byId("loginMsg").style.backgroundColor = "transparent";
    			dojo.byId("loginMsg").innerHTML = dojo.byId("loginMsg0").innerHTML;
    			location.reload();
    		} else {
    			if ( dojo.cookie('DomAuthSessId') != null || dojo.cookie('LtpaToken') != null ) {
    				dojo.byId("loginMsg").style.visibility = "visible";
    				dojo.byId("loginMsg").innerHTML = dojo.byId("loginMsg2").innerHTML;    				
    				dojo.cookie('DomAuthSessId', null, { path: '/', domain: document.domain });
    				dojo.cookie('LtpaToken', null, { path: '/', domain: document.domain });
    			} else {
    				dojo.byId("loginMsg").style.visibility = "visible";
    				dojo.byId("loginMsg").innerHTML = dojo.byId("loginMsg1").innerHTML;
    			}
    		}
    		dojo.byId("bLogin").disabled = false;
    	},
    	error: function (error) {
    		// IE throws an XML parser error when the GIF is returned -> ignore and reload anywhay
    		console.error ('Error: ', error);
    		location.reload();    		
    	}
    });
 } 

function fadeIn(elem, dur) {
	if (dojo.isIE) {
		dojo.style(elem, {visibility:'visible'});
	} else {
		if (elem.style.visibility == 'hidden' || elem.style.opacity == '0') {
			dojo.style(elem, {opacity:'0'});
			dojo.style(elem, {visibility:'visible'});
			dojo.fadeIn({node:elem,duration:dur}).play();
		}
	}
}

function fadeOut(elem, dur) {
	if (elem.style.opacity != '0') {
	if (dojo.isIE) {
		dojo.style(elem, {visibility:'hidden'});
	} else {
		dojo.fadeOut({node:elem,duration:dur}).play();
	}
	}
}

function toggleWipe(id) {
	var elem = dojo.byId(id);
	if (elem.style.display == "none") {	
		//elem.style.display = "";
		dojo.fx.wipeIn({node:elem,duration:500}).play();
	} else {
		//elem.style.display = "none";
		dojo.fx.wipeOut({node:elem,duration:250}).play();
	}
}

function trimForUrlPart(v) {
	if (v.indexOf(" ") > 0) v = v.substring(0, v.indexOf(" "));
	v = v.toLowerCase();
	v = v.replace(/[\u00E4\u00E1\u00E0\u00E2\u00E5\u00E6\u0101\u0103\u0105]/g, 'a');
	v = v.replace(/[\u00F6\u00F3\u00F2\u00F4\u00F5\u00F8\u014D\u014F\u0151\u0153]/g, 'o');
	v = v.replace(/[\u00FC\u00FA\u00F9\u00FB\u0169\u016B\u016D\u016F\u0171]/g, 'u');
	v = v.replace(/[\u00E9\u00E8\u00EA\u0113\u0115\u0119\u011B\u00EB]/g, 'u');
	v = v.replace(/[\u00DF]/g, 'ss');
	v = v.match(/[a-z0-9]+/g);
	if (typeof v != "string") v = v.join('');
	return v;
}

function listBoxSelectAll(id) {
	var elem = document.getElementById(id);
	for(var i=0; i<elem.options.length; i++)
		elem.options[i].selected = true;
}

function listBoxSelectNone(id) {
	var elem = document.getElementById(id);
	for(var i=0; i<elem.options.length; i++)
		elem.options[i].selected = false;
}
