// (c) 2000-2002 instruct ag
// basic functionality to save, del carddefined data between switches
//functions to save in cookies and get cookies
//different reloads (???) 
var debug = false;

function debug_alert(msg) {
	if (debug) {
		alert("cookies.js." + msg);
	}
}

//#### save status when switch_image
function saveStatus() {
	saveMMStatus();
	saveAnsStatus();
}

//#### from delCardStatus() on card_content (header) (->button_next_or_prev() in navigation.js)
function delStatus() {
	delMMStatus();
	delAnsStatus();
}

//#### mulituser mode from ????
function saveMSStatus(ctrl) {
	saveMMStatus();
	saveAnsStatus();
}

//#### cookie basics
//#### from card_content,mm_info() in mm_card.js...... 
function getValue(key)  {
   var pvt_islocalversion = false;
   if (top.islocalversion || parent.islocalversion) pvt_islocalversion=true;
   
   var value = "";
   //debug_alert("getValue(eval):" + value);
   if(document.cookie && !pvt_islocalversion) 
   {
    	start = document.cookie.indexOf(key);
		if (start != -1) 
			start = document.cookie.indexOf("=",start) + 1;

		if (start != -1) {
	    	end = document.cookie.indexOf(";",start);
	   		if(end == -1) end = document.cookie.length;
	    		value = document.cookie.substring(start,end);
		}
   	}
   	//iflocalversion write "cookie" in array in top frame (prof_index.html), if answercomment
   	//is clicked get value of cookie_arr from opener top!!!!!
	if (pvt_islocalversion && top.cookie_arr) {
		value=top.cookie_arr[key];
		debug_alert("getValue(toparr):" + key + ","+ value + "," + top.cookie_arr);
	}
	else if (pvt_islocalversion && parent && parent.opener && parent.opener.parent && parent.opener.parent.cookie_arr) {
		value = parent.opener.parent.cookie_arr[key];
		debug_alert("getValue(parentarr):" + key + ","+ value + "," + top.cookie_arr);
	}
	
    return value;
}

//#### from doOnLoadMM() on card_content, saveAnsStatus() in mc.js...
function setValue(key, value) {
	var pvt_islocalversion = false;
   	if (top.islocalversion || parent.islocalversion) pvt_islocalversion=true;
   	
	if(pvt_islocalversion)
	{
		if (top.cookie_arr) {
			//eval("top.cookie_arr" + key + "= value");
			top.cookie_arr[key] = value;
			//debug_alert("setValue:" + key + ","+ value + "," + top.cookie_arr[key]);
		}
		else if (parent && parent.opener && parent.opener.parent && parent.opener.parent.cookie_arr ) {
			parent.opener.parent.cookie_arr[key] = value;
		} 
	}
	else {
   		document.cookie = key + "="+ value+";";
   	}
}


//#### helpers for switching between screens
//#### from doParentReload(), doAnswerReload in cookies31.js
function doURLReload(loc,url) {
	// Ermitteln des Browsers:
	var browserName = navigator.userAgent.toUpperCase();
	var isICABIdx = browserName.indexOf("ICAB");
	var	isICAB = (isICABIdx > 0);
	var	isIE = (browserName.indexOf("MSIE") >= 0);
	var	isNS = (browserName.indexOf("MOZILLA") >= 0);
	var	isMac = (browserName.indexOf("MAC") >= 0);
	var	isWIN = (browserName.indexOf("WIN") >= 0);
	var	reload = false;


	//if (isMac == true && isIE == true) {
	//	reload = true;
	//}

	if (isNS) {
		window.document.act_page=url;
	}

	/*
	interesting effect of IE6-WIN:
	if ulr == "" for reload/replace the window is closed!?!?!?!?!?!
	*/
	if (!url || url=="") {
		alert("WARNING INTERNAL: cookies31.js.doURLReload(loc,url) url=EMPTY!!!\nCONTACT SUPPORT!!!");
		return;
	}
	
	if (reload == true)
		loc.reload(url);
	else
		loc.replace(url);
}

//#### from???? delete????
/*function doReload() {
	document.location.reload();
}
*/

 //#### from submit_form() in mc/freetext/sort/ucfreetext/underline/lab.js, communication.html
function doParentReload(docid) {
    if (docid)
	    doURLReload(parent.location,"card.html?docid=" + docid);
	else
	    doURLReload(parent.location,parent.location.href);
}

//#### for communication.html
function doAnswerReload(docid) {
    if (docid)
	    doURLReload(parent.text.location,"cardcont.html?docid=" + docid);
	else
	    doURLReload(parent.text.location,parent.text.location.href);
}

function getCombinedCookieData(ccName,ccData) {
	if (ccData == null) {
		return getValue(ccName);
	}
	else {
		return ccData;
	}
}

function getCombinedCookieDataArray(ccName,ccData,ccDelimiter,ccLen) {
	var tmpArray;
	var i=0;
	if (ccData) {
		tmpArray = ccData.split(ccDelimiter);
		for (i=0; i<ccLen; i++) {
			var tmpVal = tmpArray[i];
			if ((tmpVal == null) || (tmpVal = "")) {
				tmpArray[i] = "-";
			}
		}
	}
	else {
		var tmpArray = new Array(ccLen);
		for (i=0; i<ccLen; i++) {
			tmpArray[i] = "-";
		}
	}
	
	return tmpArray;
}

function setCombinedCookieData(ccName,ccDataArray,ccDelimiter) {
	var tmpCCData = "-";
	if (ccDataArray) {
		tmpCCData = ccDataArray.join(ccDelimiter);
	}
	
	setValue(ccName,tmpCCData);
	return tmpCCData;
}


function getCombinedCookieValue(ccDataArray,index) {
	if (index == -1) {
		return;
	}
		
	if (index >= 0 && index < ccDataArray.length) {
		return ccDataArray[index];
	}
	else {
		return "-";
	}
}

function setCombinedCookieValue(ccDataArray,index,value) {
	if (value) {
		ccDataArray[index] = value;
	}
	else {
		ccDataArray[index] = "-";
	}
}

function myreplace(instr, replacesrc, replacedst) {
	//alert("instr, replacesrc, replacedst: " + instr + "," + replacesrc + "," + replacedst);
	var outstr = instr;
	idx = instr.toLowerCase().indexOf(replacesrc.toLowerCase());
	len	= instr.length;
	//alert("idx=" + idx);
	if (idx != -1) {
		outstr = instr.substring(0,idx);
		//alert("outstr=" + outstr);
		outstr += replacedst;
		//alert("outstr=" + outstr);
		tmp = instr.substring(idx + replacesrc.length);
		//alert("tmp=" + tmp);
		outstr += tmp;
		//alert("outstr=" + outstr);
	}

	return outstr;
}

/*
this function replaces js hyperlinks in a casus page to popup friendly standard hyperlinks
- intarget: (default  = "Hyperlink"): target setting for the hyperlink
It's neccessary to have the possibility to specify another target for hyperlnks in hyperlinks: magnify, expert!!

The functions interates thru all anchors of the document and looks whether the href = javascript:openHyperLinkWnd
id and name MUST be set!!!!!
The any queries are cut!

then the function steps thru all areas for imagemaps!!
*/
function doCardStrict(intarget) {
	var mytarget = "Hyperlink";	
	if (intarget) mytarget = intarget;
	
	// THIS IS AN UGLY HACK FOR NICKELS!!!!!
	// The openWindow has to be changed in the server, that's why i do it here now!!!!!
	// The URL changed just "minutes" before using, so i do it globally now by replacing IDs
	for (i=0;i<document.anchors.length;i++) {
		tmpAnchor = document.anchors[i];
		if (tmpAnchor) {
			tmpHref = tmpAnchor.href;
			var cmpHref = tmpHref.toLowerCase();
			if (cmpHref.indexOf("aiccredirect.html") != -1 && cmpHref.indexOf("nickels4") != -1) {
				tmpHref += "&openjstarget=nickels_main";
				var mapping = false;
				// tmp change:
				
				if (mapping) {
					tmpHref = myreplace(tmpHref,"706eb5d286f55563003af975e54366a6%2F706f121686f5556301a3a7f7ff25b0ac%2F284f51a686f55563004e04638b809e36","452f5f2786f55563017244d7f74ed036%2Fed4058c786f5556301be2c6f89bd88c8%2F284f51a686f55563004e04638b809e36");
					tmpHref = myreplace(tmpHref,"706eb5d286f55563003af975e54366a6%2F706f121686f5556301a3a7f7ff25b0ac%2F562f8f0f86f5556300ddf909202a7fe3","452f5f2786f55563017244d7f74ed036%2Fed4058c786f5556301be2c6f89bd88c8%2F562f8f0f86f5556300ddf909202a7fe3");
					tmpHref = myreplace(tmpHref,"706eb5d286f55563003af975e54366a6%2F706f121686f5556301a3a7f7ff25b0ac%2F4bd230c186f555630172a16ec4ee8431","452f5f2786f55563017244d7f74ed036%2Fed4058c786f5556301be2c6f89bd88c8%2F4bd230c186f555630172a16ec4ee8431");
					tmpHref = myreplace(tmpHref,"706eb5d286f55563003af975e54366a6%2Fed4058c786f5556301be2c6f89bd88c8%2F31c5185f86f5556300dd0aee7863e3c2","452f5f2786f55563017244d7f74ed036%2Fed4058c786f5556301be2c6f89bd88c8%2F31c5185f86f5556300dd0aee7863e3c2");
					tmpHref = myreplace(tmpHref,"706eb5d286f55563003af975e54366a6%2F706f121686f5556301a3a7f7ff25b0ac%2F361d45e486f55563002be0bf98a7f5e3","452f5f2786f55563017244d7f74ed036%2Fed4058c786f5556301be2c6f89bd88c8%2F361d45e486f55563002be0bf98a7f5e3");
					tmpHref = myreplace(tmpHref,"706eb5d286f55563003af975e54366a6%2Fed4058c786f5556301be2c6f89bd88c8%2F365ed1cc86f5556300a76cdad3770fa3","452f5f2786f55563017244d7f74ed036%2Fed4058c786f5556301be2c6f89bd88c8%2F365ed1cc86f5556300a76cdad3770fa3");
					tmpHref = myreplace(tmpHref,"706eb5d286f55563003af975e54366a6%2F706f121686f5556301a3a7f7ff25b0ac%2F2c6410d686f555630166ef9d5fd4555c","452f5f2786f55563017244d7f74ed036%2Fed4058c786f5556301be2c6f89bd88c8%2F2c6410d686f555630166ef9d5fd4555c");
					tmpHref = myreplace(tmpHref,"706eb5d286f55563003af975e54366a6%2F706f121686f5556301a3a7f7ff25b0ac%2Fe380eb2b86f5556300cc52fc4a9c1800","452f5f2786f55563017244d7f74ed036%2Fed4058c786f5556301be2c6f89bd88c8%2Fe380eb2b86f5556300cc52fc4a9c1800");
					tmpHref = myreplace(tmpHref,"706eb5d286f55563003af975e54366a6%2F706f121686f5556301a3a7f7ff25b0ac%2Fe395a6d786f55563011905e0b9ad6768","452f5f2786f55563017244d7f74ed036%2Fed4058c786f5556301be2c6f89bd88c8%2Fe395a6d786f55563011905e0b9ad6768");
					tmpHref = myreplace(tmpHref,"706eb5d286f55563003af975e54366a6%2F706f121686f5556301a3a7f7ff25b0ac%2F361d45e486f55563002be0bf98a7f5e3","452f5f2786f55563017244d7f74ed036%2Fed4058c786f5556301be2c6f89bd88c8%2F361d45e486f55563002be0bf98a7f5e3");
					tmpHref = myreplace(tmpHref,"706eb5d286f55563003af975e54366a6%2Fed4058c786f5556301be2c6f89bd88c8%2F285fbc5086f55563009a99cab5149869","452f5f2786f55563017244d7f74ed036%2Fed4058c786f5556301be2c6f89bd88c8%2F285fbc5086f55563009a99cab5149869");
					tmpHref = myreplace(tmpHref,"706eb5d286f55563003af975e54366a6%2Fed4058c786f5556301be2c6f89bd88c8%2F2c81264086f55563005b2183bbab8e2d","452f5f2786f55563017244d7f74ed036%2Fed4058c786f5556301be2c6f89bd88c8%2F2c81264086f55563005b2183bbab8e2d");
					tmpHref = myreplace(tmpHref,"706eb5d286f55563003af975e54366a6%2Fed4058c786f5556301be2c6f89bd88c8%2F2c81c58386f5556300906fed58d7d9ce","452f5f2786f55563017244d7f74ed036%2Fed4058c786f5556301be2c6f89bd88c8%2F2c81c58386f5556300906fed58d7d9ce");
					tmpHref = myreplace(tmpHref,"706eb5d286f55563003af975e54366a6%2Fed4058c786f5556301be2c6f89bd88c8%2F365ed1cc86f5556300a76cdad3770fa3","452f5f2786f55563017244d7f74ed036%2Fed4058c786f5556301be2c6f89bd88c8%2F365ed1cc86f5556300a76cdad3770fa3");
					tmpHref = myreplace(tmpHref,"706eb5d286f55563003af975e54366a6%2Fed4058c786f5556301be2c6f89bd88c8%2F363475a486f555630003493f745f5f14","452f5f2786f55563017244d7f74ed036%2Fed4058c786f5556301be2c6f89bd88c8%2F363475a486f555630003493f745f5f14");
					tmpHref = myreplace(tmpHref,"706eb5d286f55563003af975e54366a6%2Fed4058c786f5556301be2c6f89bd88c8%2F284f51a686f55563004e04638b809e36","452f5f2786f55563017244d7f74ed036%2Fed4058c786f5556301be2c6f89bd88c8%2F284f51a686f55563004e04638b809e36");
					tmpHref = myreplace(tmpHref,"706eb5d286f55563003af975e54366a6%2Fed4058c786f5556301be2c6f89bd88c8%2F31c5185f86f5556300dd0aee7863e3c2","452f5f2786f55563017244d7f74ed036%2Fed4058c786f5556301be2c6f89bd88c8%2F31c5185f86f5556300dd0aee7863e3c2");
					tmpHref = myreplace(tmpHref,"706eb5d286f55563003af975e54366a6%2Fed4058c786f5556301be2c6f89bd88c8%2F3637904c86f55563015c915ed3e38c39","452f5f2786f55563017244d7f74ed036%2Fed4058c786f5556301be2c6f89bd88c8%2F3637904c86f55563015c915ed3e38c39");
					tmpHref = myreplace(tmpHref,"706eb5d286f55563003af975e54366a6%2Fed4058c786f5556301be2c6f89bd88c8%2F284f51a686f55563004e04638b809e36","452f5f2786f55563017244d7f74ed036%2Fed4058c786f5556301be2c6f89bd88c8%2F284f51a686f55563004e04638b809e36");
					tmpHref = myreplace(tmpHref,"706eb5d286f55563003af975e54366a6%2Fed4058c786f5556301be2c6f89bd88c8%2Fe380eb2b86f5556300cc52fc4a9c1800","452f5f2786f55563017244d7f74ed036%2Fed4058c786f5556301be2c6f89bd88c8%2Fe380eb2b86f5556300cc52fc4a9c1800");
					tmpHref = myreplace(tmpHref,"706eb5d286f55563003af975e54366a6%2Fed4058c786f5556301be2c6f89bd88c8%2F363e160786f55563001c7e81b4b847df","452f5f2786f55563017244d7f74ed036%2Fed4058c786f5556301be2c6f89bd88c8%2F363e160786f55563001c7e81b4b847df");
					tmpHref = myreplace(tmpHref,"706eb5d286f55563003af975e54366a6%2Fed4058c786f5556301be2c6f89bd88c8%2F6fd916ef86f5556300631c7085870558","452f5f2786f55563017244d7f74ed036%2Fed4058c786f5556301be2c6f89bd88c8%2F6fd916ef86f5556300631c7085870558");
					tmpHref = myreplace(tmpHref,"706eb5d286f55563003af975e54366a6%2Fed4058c786f5556301be2c6f89bd88c8%2F6fe5249886f555630127ea69c2aabac4","452f5f2786f55563017244d7f74ed036%2Fed4058c786f5556301be2c6f89bd88c8%2F6fe5249886f555630127ea69c2aabac4");
					tmpHref = myreplace(tmpHref,"706eb5d286f55563003af975e54366a6%2Fed4058c786f5556301be2c6f89bd88c8%2F284f51a686f55563004e04638b809e36","452f5f2786f55563017244d7f74ed036%2Fed4058c786f5556301be2c6f89bd88c8%2F284f51a686f55563004e04638b809e36");
				}
				
				if (tmpHref.indexOf("http:") != -1) {
					firstSlash = tmpHref.indexOf("/",10);
					if (firstSlash != -1) {
						tmpHref = tmpHref.substring(firstSlash);
					}
				}
				
				tmpAnchor.href = "javascript:openHyperLinkWnd(\'" + tmpHref + "\','files/html/dummy.html',950,700,false)";
				tmpAnchor.target = "";
			}
		}
	}
	
	if (new_popup_friendly == "strict") {
		var tmpHref = "";
		var tmpAnchor = "";
		for (i=0;i<document.anchors.length;i++) {
			tmpAnchor = document.anchors[i];
			if (tmpAnchor) {
				tmpHref = tmpAnchor.href;
				if (tmpHref.indexOf("javascript:openHyperLinkWnd") != -1) {
					var myurl = document.anchors[i].href;
					var myurlstart = myurl.indexOf("'");
					var myurlend = myurl.indexOf("'",myurlstart + 1);
					myurl = myurl.substring(myurlstart+1,myurlend );
					tmpAnchor.target = mytarget;
					tmpAnchor.href = myurl;
				}
			}
		}
		
		var elments = document.getElementsByTagName("area");
		//alert("elments=" + elments);
		for (i=0;i<elments.length;i++) {
			var elm = elments[i];
			//alert("elm=" + elm);
			tmpHref = elm.href;
			if (tmpHref.indexOf("javascript:openHyperLinkWnd") != -1) {
				var myurl = tmpHref;
				var myurlstart = myurl.indexOf("'");
				var myurlend = myurl.indexOf("'",myurlstart + 1);
				myurl = myurl.substring(myurlstart+1,myurlend );
				elm.target = mytarget;
				elm.href = myurl;
			}
			//alert("elm=" + elm);
		
		}
	}
}

/*
helper function for popup fríendly setting:
in_in		which a tag will be modified
in_check	check string which should be the beginning of the href
in_quotes	if no url is specified in "in_url", we will look for the first quoted parameter of a js function in the href
in_target	which target will be choosen for the standard hyperlink
in_help		casus help needs an additional _fs.html, so we have to cut the .html and replace it with _fs.html
in_url		overrides the selection of the first param of the js function in href
*/
function replaceStrictLinksHelper(in_id,in_check,in_quotes,in_target,in_help,in_url) {
	var elm = document.getElementById(in_id);
		if (elm && elm.href && elm.href.indexOf(in_check) == 0) {
			var myurl;
			if (in_url) {
				myurl = in_url;
			}
			else {
				myurl = elm.href;
				var myurlstart = myurl.indexOf(in_quotes);
				var myurlend = myurl.indexOf(in_quotes,myurlstart + 1);
				myurl = myurl.substring(myurlstart+1,myurlend );
			}
			
			if (in_help==true) {
				var myurlend = myurl.indexOf(".html");
				myurl = myurl.substring(0,myurlend ) + "_fs.html";
			}

			elm.target = in_target;
			elm.href = myurl;
		}
}
