	
	var logonWindow = null;
	var logonWindowHandler = null;
	var contentFrameName = null;
	var protocol = document.location.protocol;	
	var tStamp = 'TS';
	
	Today = new Date();
	timeStamp = Today.getTime();
	
	if ( protocol=='undefined' || protocol=='' ) { protocol='http:'; }
	
	if (typeof(channelUrl)=='undefined') {
		channelUrl='';
	}
	if ( hostName=='' ) { 
		strURL = cdaLogonPage; 
	} else {
		if (!isLocalHost ) {
			strURL =  'https://' + hostName + cdaPath + cdaLogonPage;
			strURL += '?LANG='+langId+'&CHANNEL='+channelId; 
		} else {
			strURL =  cdaPath + cdaLogonPage;
			strURL += '?OID='+oid;
		}
	}	
	
	userCookie=getCookie('icon_cda_user');	
	// changed the if statement isLocalHost -> !isLocalHost
	if ((  userCookie== null ) && (isSecure) && (!hasStartPage) && ( !isStaging || isLocalHost ) ) {			
			self.location.href=strURL+"&CONTENTURL=" + protocol + "//"+window.location.host + startURL_NC + '?' + tStamp + '=' + timeStamp;
	}
			
	function openLink(oid,openType,linkType,windowOpenProps,statisticTag) {		
		
		if (typeof(instadiaId)!='undefined') {
			if (typeof(statisticTag)=='undefined') { statisticTag=''; }
			if (linkType=='ex' || linkType=='fi' || (linkType=='co' && statisticTag!='')) {
				filename='';instadiaLinkDesc=instadiaDesc;
				if (linkType=='ex') {
					instadiaLinkDesc += 'user_linked_to_';
					filename=getURLbyContChannelId(oid) + "/";
				} else if (linkType=='fi') {
					instadiaLinkDesc += 'user_download_';
					startpos = oid.indexOf('/Projects/c2c/channel/');
					if (startpos!=-1) {
						filename = oid.substr(oid.lastIndexOf('/')+1,oid.length) + "/";
					}
				} else {
					instadiaLinkDesc += 'user_linked_to_';
					filename = oid + "/";
				}

				// call the Instadia JavaScript in c2c_start , is the parent c2c_start or is no parent ?				
				isSingleFrame=true; // default;
				try {
					window_href = parent.frames[1].location.href.toUpperCase();
					isSingleFrame=(window_href.indexOf('/C2C_SINGLEFRAME')>-1);
				} catch ( error ) {}
				
				if ( isSingleFrame ) { 
					instadiaLinkDesc += filename + statisticTag;				
				} else {
					instadiaLinkDesc = 'parent.frames[1].' + instadiaLinkDesc + filename + statisticTag + '\');';				
				}
				
				try {
					Instadia_sendInfo(instadiaId,instadiaLinkDesc,instadiaLinkDesc);
				} catch ( instadiaError ) {}		
			}
		}		

		url = location.pathname;		
		first4=url.substr(0,4);
		posLastSlash = url.lastIndexOf('/');
		
		if (posLastSlash>1 && !isLocalHost ) {
			if (first4=='/nc/' && posLastSlash>3 ) {						 
			 url = channelUrl!=''?'/nc'+channelUrl:url.substr(0,posLastSlash);
			} else if (first4!='/nc/') {
			  url = channelUrl!=''?channelUrl:url.substr(0,posLastSlash);
			}		
		}
		
		// bert, 19.97.2004 query noCache-flag of oid
		var noCache = getNoCacheFlagOfOid(oid);
		
		// Nocache to Cache Template tauschen , wenn nix angemeldet			
		if ( userCookie==null && !isLocalHost && noCache==0 ) 	{			
			if  ( url.substr(0,4)=='/nc/') {
				url = url.substr(3,url.length);										
			}
		} else if (!isLocalHost && url.substr(0,4)!='/nc/' && noCache!=0) {
				url = '/nc' + url;		
		} else if ( userCookie!=null && !isLocalHost && noCache==0 ) 	{			
			if  ( url.substr(0,4)=='/nc/') {
			//	url = url.substr(3,url.length); warum ist das so???
			}
		}			
				
		if (typeof(linkType)=='undefined' || linkType=='co' || linkType=='me' ) {
			// Bugfix start
			// Defect 4955 fixed (Back in der CDA funktioniert nicht)
			oid=replaceMODEInOID(oid, portalChannel);
			// for BPW
			oid=replaceChannelInOID(oid);
			// Bugfix end
			oid=replaceNOCACHEInOID(oid);
			if (!isLocalHost) {
				url = url +   "/0,," + oid + ",00.html" + location.search
			} else {
				url = url + "?OID="+oid;
			}
		} else if (linkType=='ex') {
				
			url = getURLbyContChannelId(oid);
				
			//openType = getOpenTypebyContChannelId(oid);
			//opentype comes from detail edit
			 if ( url!=oid ) {
			  if (openType=="2") {
				openType = "3";
			  }
			 windowOpenProps = getPropsbyContChannelId(oid);
			}
		} else {
			url = oid;
		}

        // Wenn angemeldet , und NoCache Seite wird aufgerufen,  dann timestamp an URL hängen , wegen Proxy-Cache
	    url=addTimeStamp(url);
					
		switch (openType) {
			case "1": {
				location.href = url;
				break;
				}
			case "2": {
				newWindow = window.open(url);
				newWindow.focus();
				break;
				}
			case "3": {
				title = getTitle(oid);
				newWindow = window.open(url,title,windowOpenProps);
				newWindow.focus();
				break;
				}
			case "4": {
				frmContent = window.frames[contentFrameName];
				if (typeof(frmContent)=='undefined') {
					window.location.href = url;				
				} else {
					frmContent.location.href = url;
				}
				break;
				}
			default : {
				location.href = url;
				}
		}
	}
	
	function addTimeStamp( aURL ) {		
	 try {	
	   hasTimeStamp = (aURL.indexOf(tStamp+'=')>-1);	 
		 if ( hasTimeStamp ) {
	      return aURL;
		 }	  
	 bNocacheUrl = (aURL.indexOf('/nc/')>-1);	 
	 if ( userCookie!=null && bNocacheUrl) {	 
	  qmInUrl = (aURL.indexOf('?')>-1);
	  if ( qmInUrl  ) { 
	   url=aURL+'&' + tStamp + '='+timeStamp;
	   } else {
	   url=aURL+'?' + tStamp + '='+timeStamp;
	   }	  
	 } else {
	  url=aURL;
	 }
	 } catch ( error ) { url=aURL; }
	 return url;
	}
	
	function getTitle(oid) {
		try {
			arrOid = oid.split('-');
			// oid can also be one single id (contChannelId)
			var uniqueIdPos = arrOid.length>4 ? 4 : arrOid.length-1;
			var uniqueId = arrOid[uniqueIdPos];
			if (isNaN(uniqueId)) { // oid can also be a file-path
				return 'newWindow' + Number(new Date());
			} else {
				return 'newWindow' + uniqueId;
			}
		} catch ( error ) {
			return 'newWindow' + Number(new Date());
		}
	}

	function openPopUp(contChannelId,callType) {
		try {
			//for Menu and ContenItem PopUps
			if (callType=='puOpen') {
				popUpArray = POPUPIDS.split(',');
				for (i=0;i<popUpArray.length;i++) {
					singlePopUp="POPUP" + popUpArray[i];
					singlePopUpValue=eval(singlePopUp);
					popUpProps = singlePopUpValue.split('|');
					//strURL =  CDA_JSP + '?OID=' + popUpProps[0];
	
					openLink(popUpProps[0],"3",'co',popUpProps[1]);
				}
			} else if (callType=='puClose') {
				//only open popup if no opener exists
				if (!window.opener && (event.clientY < 0)) {
					singlePopUp="CLOSE_POPUP_PROPS" + CLOSE_POPUP_ID;
					singlePopUpValue=eval(singlePopUp);
					popUpProps = singlePopUpValue.split('|');
					//strURL =  CDA_JSP + '?OID=' + popUpProps[0];
					
					openLink(popUpProps[0],"3",'co',popUpProps[1]);
				}
			} else if (callType=='pu') {
				popUpArray = DE_POPUP_IDS.split(',');
				for (i=0;i<popUpArray.length;i++) {
					if (popUpArray[i]==contChannelId) {
						singlePopUp="DE_POPUP_PROPS" + popUpArray[i];
						singlePopUpValue=eval(singlePopUp);
						popUpProps = singlePopUpValue.split('|');
						//strURL =  CDA_JSP + '?OID=' + popUpProps[0];
		
						openLink(popUpProps[0],"3",'co',popUpProps[1]);
					}
				}
			}
		} catch ( error ) {  }
	}
	
	function getURLbyContChannelId(oid) {
		try {
			props = "DE_EX_PROPS" + oid;
			propvalues = eval(props);			
			if ( typeof(propvalues)=='undefined' ) {
			 return oid;
			} else {
			 propArray = propvalues.split('|');
			 return propArray[0];
			}
		} catch ( error ) { return oid; }
	}
	
	function getOpenTypebyContChannelId(oid) {
		try {
			props = "DE_EX_PROPS" + oid;
			propvalues = eval(props);
			propArray = propvalues.split('|');
			return propArray[1];
		} catch ( error ) {  }
	}

	function getPropsbyContChannelId(oid) {
		try {
			props = "DE_EX_PROPS" + oid;
			propvalues = eval(props);
			propArray = propvalues.split('|');
			return propArray[2];
		} catch ( error ) {  }
	}
	
	function showLogon(objLogonPanel, strLogonText, strLogoffText) {				
	if ( objLogonPanel!=null ) {
			if ( getCookie('icon_cda_user')!=null ) {
			objLogonPanel.innerText=strLogoffText;
			} else  {
			objLogonPanel.innerText=strLogonText;
		 	}		
	}
	}
	
	function swapDiv(strDivTag1, strDivTag2) {				
	        document.getElementById(strDivTag1).style.display = "block" ;
            document.getElementById(strDivTag2).style.display = "none" ;
	}
	
	
	
	function loginDialog() { 
		userCookie=getCookie('icon_cda_user');			  
		if ( userCookie == null  ) {
		  logonWindowHandler = window.setInterval("checkLogonWindow()", 500);
		  logonWindow = window.open(strURL, "logon", "menubar=0,resizeable=0,status=0,height=180,width=350,left=100,top=100");
		} else {
		  // celete the cookie by setting its expiry date to be sometime in the past
		  var now = new Date();
		  var yesterday = new Date(now.getTime() - 1000 * 60 * 60 * 24);

		  document.cookie = escape("icon_cda_user") + '=' 
		           + '; EXPIRES=' + yesterday.toGMTString()
		           + '; PATH=/';

		  if (startURL.length>0) {		     
		    window.document.body.style.cursor='wait';		   
		    window.location.href = protocol + '//'+window.location.host + startURL;
		  } else {
  		    window.location.reload();
		  }
		}
	}

	function checkLogonWindow() {		  
		  	if (logonWindow != null  && logonWindow.closed )  {			
				window.clearInterval(logonWindowHandler);
				logonWindow = null;
		  		userCookie=getCookie('icon_cda_user');			  
				  if ( userCookie!= null  ) {		
				    url=getVignetteHref(window.location.href);			    
 					if ( url=='' ) {
 					 newHref=startURL_NC;
 					} else {
 					 newHref=startURL_NC+ '/0,,' + url;
 					}	 							  		
 					newHref = newHref + '?' + tStamp + '=' + timeStamp;		  
				   window.document.body.style.cursor='wait';						  	  
				   window.location.href =  protocol + '//'+window.location.host +newHref;
				  }
			}	  
	}
	
	function getVignetteHref( aHref ) {
	 url='';
	  try {
	  ArrUrl=aHref.split(',,');				   	 
      if (ArrUrl.length>1) url = ArrUrl[1];		
      }
      catch ( error ) {  }
      if ( url=='undefined' ) url='';
      return url;
     }
	
	function isValidDate(datestring) {
		var day;
		var month;
		var year;
		var hour;
		var minute;
		var fieldOk = true;
		cal = new Array(31,29,31,30,31,30,31,31,30,31,30,31);
		if (datestring != "") {
			day = datestring.substring(0,2);
			month = datestring.substring(3,5);
			year = datestring.substring(6,datestring.length);
			point1 = datestring.substring(2,3);
			point2 = datestring.substring(5,6);
			if (point1 != '.' || point2 != '.') {
				fieldOk=false;
			}
			if (datestring.length != 10) {
				fieldOk=false;
			} else {
				if (year > 1899 && year < 2101 && month < 13 && month > 0 && day < 32 && day > 0) {
					if (cal[eval(month)-1] < day && eval(month)!=2) {
						fieldOk=false;
					} else {
						if (year%4 && day > 28 && eval(month)==2) {
							fieldOk=false;
						} else {
							if (day > 29 && eval(month)==2) {
								fieldOk=false;
							}
						}
					}
				} else {
					fieldOk=false;
				}
			}
		} else {
			fieldOk=true;
		}
		return fieldOk;
	}

	
	
	function getCookie(sName)
	{
	  // cookies are separated by semicolons
	  var aCookie = document.cookie.split("; ");
	  for (var i=0; i < aCookie.length; i++)
	  {
	    // a name/value pair (a crumb) is separated by an equal sign
	    var aCrumb = aCookie[i].split("=");
	    if (sName == aCrumb[0])
	      return unescape(aCrumb[1]);
	  }
	
	  // a cookie with the requested name does not exist
	  return null;
	}

	
	function replaceNOCACHE(aURL,bURL) {			
				arrayURL =aURL.split(',');
				lenArrayURL=arrayURL.length;
				OID=arrayURL[lenArrayURL-2];				
				if ( OID==null ) {
				    arrayURL2 =bURL.split(',');
					lenArrayURL2=arrayURL2.length;
					OID=arrayURL2[lenArrayURL2-2];	
					if ( OID==null) return null;
					arrayOID=OID.split('-');
					arrayOID[16]='7';								
					strOID=arrayOID.join('-');
					strNewURL=arrayURL[0]+'/1,,' + strOID + ',00.html';		
				
				   return strNewURL;	
				}
				
				arrayOID=OID.split('-');
				arrayOID[16]='7';								
				strOID=arrayOID.join('-');
				arrayURL[lenArrayURL-2]=strOID;
				strNewURL=arrayURL.join(',');
				
			return strNewURL;
	}
	
	function replaceContentitemIdInURL(strUrl, pos, id) {																		
		var startPos = 0;
		var OID = '';
		if (isLocalHost) {
			startPos = strUrl.lastIndexOf("OID");	
		} else {
			startPos = strUrl.lastIndexOf("/");	
		}		
		if (startPos!=-1) {
			OID = strUrl.substring(startPos,strUrl.length);
		}
		arrayOID=OID.split('-');
		arrayOID[pos]=id;								
		strOID=arrayOID.join('-');			

		returnUrl= strUrl.substring(0,startPos) + strOID;
		return returnUrl;
	}

	function replaceNOCACHEInOID(OID) {																		
		 userCookie=getCookie('icon_cda_user');
		 if ( userCookie!= null  ) {
				arrayOID=OID.split('-');
				arrayOID[16]='31';								
				strOID=arrayOID.join('-');			
			} else {
				strOID=OID;
			}
		return strOID;
	}

	// Bugfix start
	// Defect 4955 fixed (Back in der CDA funktioniert nicht)
	function replaceMODEInOID(OID, portalChannel) {																		
		arrayOID=OID.split('-');
		if( portalChannel ) {
			arrayOID[10]='1';								
		} else {
			arrayOID[10]='0';								
		}
		strOID=arrayOID.join('-');			
		return strOID;
	}
	
	function replaceChannelInOID(OID) {
		if (parentChannelId > 0 && parentChannelId!=channelId) {
			return (setOid(OID, 1, channelId));
		}
		return OID;
	}
	function setOid(OID, x, newValue) {
		arrayOID = OID.split('-');
		arrayOID[x] = newValue;
		return arrayOID.join('-');
	}
	
	function replaceNoCacheInTemplateAndOid(source) {
		 userCookie=getCookie('icon_cda_user');
		 if (( userCookie!= null ) && (source.indexOf('c2c_cdaFrame_NoCache')==-1)) {
			arrayURL = source.split(',');
			lenArrayURL=arrayURL.length;
			oldOID=arrayURL[lenArrayURL-2];
			newOID='';
			if ( oldOID!=null ) {
				newOID = replaceNOCACHEInOID(oldOID);
			}
			if ((newOID!=null) && (newOID.length>0)) {
				source = source.replace( oldOID, newOID );
			}

			source = source.replace( 'c2c_cdaFrame', 'c2c_cdaFrame_NoCache' );
		}

		return source;
	}
	
	// bert, 19.07.2004
	function getNoCacheFlagOfOid(pOid)
	{		
		arrayOID=pOid.split('-');
	  	if (arrayOID.length>5) {
	  	  return arrayOID[16];
	  	} else {
	  	 return -1;
	  	}
	}
	// end of changes, bert
		
 // C2C CDA functions
// for cda`s and c2c_preview.jsp
function openLinkInNewWindow(link){
  var winl = 10;
  var wint = 10;
  var w = screen.width - winl;
  var h = screen.height - wint;
  if (h > 800) w = 800;
  if (h > 600) h = 600;
  var winprops = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars=yes,resizable';
  win = window.open(link, 'ext_link_win', winprops);
  win.window.focus();
}

// image swapping
function swapImgRestore() { //v3.0
	var i,x,a=document.sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function preloadImages() { //v3.0
	var d=document; if(d.images){ if(!d.p) d.p=new Array();
	var i,j=d.p.length,a=preloadImages.arguments; for(i=0; i<a.length; i++)
	if (a[i].indexOf("#")!=0){ d.p[j]=new Image; d.p[j++].src=a[i];}}
}

function findObj(n, d) { //v4.0
	var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
	d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
	if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=findObj(n,d.layers[i].document);
	if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function swapImage() { //v3.0
	var i,j=0,x,a=swapImage.arguments; document.sr=new Array; for(i=0;i<(a.length-2);i+=3)
	if ((x=findObj(a[i]))!=null){document.sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function openBrWindow(theURL,winName,features) { //v2.0
	window.open(theURL,winName,features);
}

function doCSS(stylePath,file) {
	// tbd. create an convention for file extension for several browsertypes
	var ns4 = (document.layers) ? true : false;
	
	if (ns4) {
		document.write('<link href="'+stylePath+file+'" type="text/css" rel="stylesheet">');
	} else {
		document.write('<link href="'+stylePath+file+'" type="text/css" rel="stylesheet">');
	}
}

function doit(templateName, oid, templateNameEnd) {
	var url = templateName + oid + templateNameEnd;	
	top.location.href= url;
}

function imgPreview(prev_jsp,id) {

	var prevURL = 'http://'+window.location.host + prev_jsp + '?FILETYPE=IMAGE&FILE_ID=' + id + '&LANG=' + langId + '&CHANNEL='+ channelId;
 	pv=0;
 	window.open (prevURL,'prev',"width=450,height=380,toolbar=no,location=no,directories=no,status=no,menubar=no,resizable=yes,scrollbars=yes");
	return false;

}

function css(lay,colOn) {
	if (document.all) {
		document.all.item(lay).style.backgroundColor = colOn;
	}
	if (document.layers) {
		document.layers[lay].bgColor=colOn; 
	}
	if (document.getElementById(lay)) {
		document.getElementById(lay).bgColor=colOn;
	}

}

function doOnUnLoadDefault() {
	try {
		//openPopUp(0,'puClose');
		doBeforeUnLoad();
	} catch ( error ) {  }
}

function doOnLoadDefault() {
	try {
		//openPopUp(0,'puOpen');
		
		doBeforeLoad();
	} catch ( error ) {  }
}
function doOnUnLoadSplashDefault() {
	try {
		doBeforeUnLoadSplash();
	} catch ( error ) {  }
}
function doOnLoadSplashDefault() {
	try {
		doBeforeLoadSplash();
	} catch ( error ) {  }
}
function onload() {}


function restCSS(lay,colOff) {
	if (document.all) {	
		document.all.item(lay).style.backgroundColor = colOff;	
	}
	if (document.layers) {
		document.layers[lay].bgColor=colOff; 
	}
	if (document.getElementById(lay)) {
		document.getElementById(lay).bgColor=colOff;
	}					
}	


function popUpSwapDivTagByCaller(strShow,strHide) {

	var objShow = document.getElementById(strShow);
	var objHide = document.getElementById(strHide);
	
    if (objShow!=null) {
	    if (objShow.style.display == "none" || objShow.style.display=="") {
	        objShow.style.display = "block" ;
	    } else {
	        objShow.style.display = "none" ;
	    }
    }
    if (objHide != null) {
       objHide.style.display = "none" ;
    }
}

function showMore(obj, divId) {
   var divObj = document.getElementById(divId);
   var divElements = divObj.getElementsByTagName('DIV');
   for (i=0;i < divElements.length;i++) {
       divElements(i).style.display = 'block';
   }
   obj.style.display = "none" ;
}

function verifyDayOptions(obj) {
	var prefix = obj.name.substring(0, 3);
	
	var diff = 0;
	var anzTage = 0;

	eval("var dayBox ="+ obj.form.name+"."+prefix+"day");
	eval("var monthBox ="+ obj.form.name+"."+prefix+"month");
	eval("var yearValue ="+ obj.form.name+"."+prefix+"year.value;");
	
	var monat = monthBox.value;
	var boxLength = dayBox.length;
	
	switch(monat) {
		case "02":
			anzTage = 28;
			var leapYear = (yearValue - 2000);
			if (leapYear>0 && (leapYear%4)==0) {
				anzTage = 29;
			}		
			break;

		case "01":
		case "03":
		case "05":
		case "07":
		case "08":	
		case "10":
		case "12":
				anzTage = 31;
			break;
		default:
			anzTage = 30;
			break;
	}
	diff = anzTage - boxLength;	
	if (diff > 0) {
		for (i = 1; i <= diff; i++) {
			var val = boxLength + i; 
			var oOption = document.createElement("OPTION");
			dayBox.options.add(oOption);
			oOption.innerText = ""+val;
			oOption.value = ""+val;
		}	
	} else {
		diff *= -1;
		for (i = 0; i < diff; i++) { 
			dayBox.options.remove(dayBox.length-1);
		}
	}		
}

