/* ----------------------------------- */
/* set to true last Sunday in March    */
/* set to false last Sunday in October */
/* ----------------------------------- */
/**/	var daylightSaving=false;	 /**/
/* ----------------------------------- */

var localTimeNow='';
var UKTimeNow='';
var searchedCountryCode='';
var foundCountryCode='';
var searchedLanguage='';
var foundLanguage='';

function callWindow(theURL,winName,features) {
   var app=navigator.appName;
   if (app.indexOf('Netscape') == -1) {
		window.open(theURL,winName,features);
   		window.close();
   } else {
   		window.open(theURL,winName,features);
   		window.open(theURL,winName,features);
   }
}

function getLocalTimes()
{
	var bestMatch=0;
	var matched=false;
	for(var countryCount=0;countryCount<helpdeskTimes.length;countryCount++)
	{
		//alert('('+helpdeskTimes[countryCount][0]+'=='+countryCode+')&&('+helpdeskTimes[countryCount][1]+'=='+defaultLanguage+')')
		if((helpdeskTimes[countryCount][0]==countryCode)&&(helpdeskTimes[countryCount][1]==defaultLanguage))
		{
			bestMatch=countryCount;
			break;
		}
		else if ((helpdeskTimes[countryCount][0]==countryCode)&&(matched==false))
		{
			bestMatch=countryCount;
			matched=true;
		}
	}
	searchedCountryCode=countryCode;
	foundCountryCode=helpdeskTimes[bestMatch][0];
	//alert(bestMatch);
	helpdeskOpen=helpdeskTimes[bestMatch][2];
	helpdeskClosed=helpdeskTimes[bestMatch][3];
	helpdeskLinkURLs=helpdeskTimes[bestMatch][4];

}

function openTimes(theTime,theTimes)
{
	//alert(theTime+' '+theTimes+'   '+theTimes.length);
	var isOpen=false;
	for(var i=0;i+2<=theTimes.length;i+=2)
	{
		if((theTime>=(theTimes[i]*60))&&(theTime<=(theTimes[i+1]*60)))
		{
			isOpen=true;
			break;
		}
	}
	return isOpen;
}

function changeLanguage(newLanguage)
{
	var locationString=location.toString();
	var args=getArgs();
	if (location.search.substring(1)=="")
	{
		locationString+="?lang="+newLanguage;
	}
	else if (args.lang)
	{
		var oldLanguage=args.lang;
		var langString=locationString.substring(locationString.indexOf("lang="),(locationString.indexOf("lang=")+5+args.lang.length));
		locationString=locationString.replace(langString,"lang="+newLanguage)
	}
	else
	{
		locationString+="&lang="+newLanguage;
	}
	//alert(locationString);
	document.location=locationString;
}

function getArgs()
{
	var args = new Object();
	var query = location.search.substring(1); //Get query string.
	var pairs = query.split("&"); //Break at ampersand.
	for(var i = 0; i < pairs.length; i++)
	{
		var pos = pairs[i].indexOf('='); //Looks for "name=value".
		if (pos == -1) continue;	//If not found, skip.
		var argname = pairs[i].substring(0,pos); //Extract the name.
		var value = pairs[i].substring(pos+1); //Extract the value.
		args[argname] = unescape(value); //Store as a property.
	}
	return args;	//Return the object.
}

function getLanguage()
{
	/* get args (lang) */
	/* if no lang, check defaultLanguage exists in helpdeskText */
	/* if not set defaultLanguage to helpdeskText[0] language */
	var queryArgs=getArgs();
	/* get querystring arguments */
	if(queryArgs.lang)
	{
		defaultLanguage=queryArgs.lang;
	}
	searchedLanguage=defaultLanguage;
	//alert(queryArgs.lang);
	for(var textCount=0;textCount<helpdeskText.length;textCount++)
	{
		//alert(defaultLanguage+'!='+helpdeskText[textCount][0])
		if(defaultLanguage==helpdeskText[textCount][0])
		{
			break;
		}
	}
	if(textCount>=helpdeskText.length)
	{
		textCount=helpdeskText.length-1;
	}
	if(defaultLanguage!=helpdeskText[textCount][0])
	{
		defaultLanguage=helpdeskText[0][0];
		languageNumber=0;
	}
	else
	{
		languageNumber=textCount;
	}
	foundLanguage=helpdeskText[languageNumber][0];
}

function areYouOpen()
{
	getLocalTimes();
	var officeOpen=true;
	var now = new Date();
	var offset = now.getTimezoneOffset();
	var hour = now.getHours();
	var minutes = now.getMinutes();
	var day = now.getDay();
	var date = now.getDate();
	var month = now.getMonth()
	
	if(daylightSaving==true)
	{
		offset=(offset+60);
	}
	var current = ((hour * 60) + minutes)+offset;
	localTimeNow=((hour*60)+minutes)/60;
	UKTimeNow=current/60;
	for(var x=0;x<helpdeskClosed.length;x++)
	{
		//alert(months[month]+'=='+helpdeskClosed[x][0])
		if(months[month]==helpdeskClosed[x][0])
		{
			for(var y=0;y<helpdeskClosed[x][1].length;y++)
			{
				//alert(date+'=='+helpdeskClosed[x][1][y])
				if(date==helpdeskClosed[x][1][y])
				{
					officeOpen=false;
					break;
				}
			}
		}
	}
	if (officeOpen==true)
	{
		officeOpen=false;
		for(var x=0;x<helpdeskOpen.length;x++)
		{
			if(days[day]==helpdeskOpen[x][0])
			{
				if(openTimes(current,helpdeskOpen[x][1])==true)
				{
					officeOpen=true;
					break;
				}
			}
		}
	}
	//(officeOpen==false)?alert('Closed'):alert('Open');
	return officeOpen;
}

function showTime(theTime)
{
	var theFigures=theTime.toString().split(".");
	var hours=parseInt(theFigures[0])
	theFigures[0]=(hours>9)?hours.toString():"0"+hours.toString();
	var mins=((theTime-hours)*60);
	mins=Math.round(mins);
	theFigures[1]=(mins>9)?mins.toString():"0"+mins.toString();
	var outString=theFigures[0]+":"+theFigures[1];
	return(outString);
}

function displayOpeningTimes()
{
	alert(returnOpeningTimes());
}

function returnOpeningTimes()
{
	var code=officeOpenText+":\n";
	for(var openDayCount=0;openDayCount<helpdeskOpen.length;openDayCount++)
	{
		for(var dayCount=0;dayCount<days.length;dayCount++)
		{
			if(helpdeskOpen[openDayCount][0]==days[dayCount])
			{
				code+="    "+displayDays[dayCount];
				for(var timeCount=0;timeCount+2<=helpdeskOpen[openDayCount][1].length;timeCount+=2)
				{
					code+=(timeCount==0)?" "+fromTime+" ":" "+andFromTime+" ";
					code+=showTime(helpdeskOpen[openDayCount][1][timeCount])+" "+toTime+" "+showTime(helpdeskOpen[openDayCount][1][timeCount+1]);
				}
				code+="\n";
			}
		}
	}
	if(helpdeskClosed.length>0)
	{
		code+="\n"+exceptDate+":\n";
	}
	for(var closedDayCount=0;closedDayCount<helpdeskClosed.length;closedDayCount++)
	{
		for(var monthCount=0;monthCount<months.length;monthCount++)
		{
			if(helpdeskClosed[closedDayCount][0]==months[monthCount])
			{
				code+="    "+displayMonths[monthCount]+" "+helpdeskClosed[closedDayCount][1]+"\n";
			}
		}
		
	}
	return code;
}

function writeHelpdeskTable()
{
	/* ADVERTISING STAMP */
	stamp=(existCookie('adStamp')==true)?'cell='+getCookie('adStamp'):'cell=other';
	/* ADVERTISING STAMP */
	getLanguage();
	//alert(defaultLanguage);
	var isOpen=areYouOpen();
	var tableCode="";
	var extURLCount=0;
	/* loop through helpdeskText */
	/* if displayWhen is suitable then follow below: */
		/* if no icon URL, use withoutIcon code else use withIcon code */
		/* replace #iconurl# with iconURL */
		/* set URL and slashURL to '' */
		/* if URL from helpdeskURLs exists set URL and slashURL */
		/* replace #linkurl# and #/linkurl# with URL and slashURL */
		/* replace #linktitle# and #linktext# with linkTitle and linkDescription */
		/* add to tableCode  */
	for(URLCount=0;URLCount<helpdeskText[languageNumber][1].length;URLCount++)
	{
		var URLCode="";
		var slashURLCode="";
		//alert('(('+isOpen+'==true)&&('+helpdeskText[languageNumber][1][URLCount][3]+'=="open"))||(('+isOpen+'==false)&&('+helpdeskText[languageNumber][1][URLCount][3]+'=="closed"))||('+helpdeskText[languageNumber][1][URLCount][3]+'=="both")')
		if(extURLCount<helpdeskLinkURLs.length)
		{
			if(((isOpen==true)&&(helpdeskText[languageNumber][1][URLCount][3]=="open"))||((isOpen==false)&&(helpdeskText[languageNumber][1][URLCount][3]=="closed"))||(helpdeskText[languageNumber][1][URLCount][3]=="both"))
			{
				var thisCode="";
				if(helpdeskText[languageNumber][1][URLCount][0]==true)
				{
					thisCode=withIconCode;
					thisCode=thisCode.replace(/#iconurl#/g,helpdeskIconURLs[extURLCount])
					URLCode='<a href="'+helpdeskLinkURLs[extURLCount].replace(/ADstamp/,stamp)+'" onclick="callWindow(this.href,\'ChatWindow\',\''+helpdeskLinkFeatures[extURLCount]+'\');return false;" class="contentboldlink">';
					slashURLCode='</a>';
				}
				else
				{
					thisCode=withoutIconCode;
					URLCode='<span class="contentbold">';
					slashURLCode='</span>';
				}
				if(helpdeskText[languageNumber][1][URLCount][1]=='')
				{
					thisCode=(helpdeskText[languageNumber][1][URLCount][2]=='')?spacerCode:withoutTitleCode;
				}
				thisCode=thisCode.replace(/#linkurl#/g,URLCode)
				thisCode=thisCode.replace(/#slashlinkurl#/g,slashURLCode)
				thisCode=thisCode.replace(/#linktitle#/g,helpdeskText[languageNumber][1][URLCount][1])
				thisCode=thisCode.replace(/#linktext#/g,helpdeskText[languageNumber][1][URLCount][2])
				/* ---------------------------------------------- */
				/* start kill code for helpdesk ctt & ctc removal */
				/* ---------------------------------------------- */
				if(
				((helpdeskText[languageNumber][1][URLCount][3]=="both")&&(helpdeskLinkURLs[extURLCount]==''))//spacers and numbers
				||
				((helpdeskText[languageNumber][1][URLCount][0]==true)&&(helpdeskLinkURLs[extURLCount]==''))//blank URLs
				||
				(helpdeskLinkURLs[extURLCount]=='#')//# URLs (for powernow freephone number display)
				||
				((helpdeskText[languageNumber][1][URLCount][3]=="closed")&&(helpdeskText[languageNumber][1][URLCount][0]!=true))//closed message
				)
				{
					thisCode='';
				}
				if(tableCode==spacerCode)
				{
					tableCode='';
				}
				/* -------------------------------------------- */
				/* end kill code for helpdesk ctt & ctc removal */
				/* -------------------------------------------- */
				tableCode+=thisCode;
			}
			if(helpdeskText[languageNumber][1][URLCount][0]==true)
			{
				extURLCount++;
			}
		}
		else if(helpdeskText[languageNumber][1][URLCount][0]==true)
		{
			tableCode+='<!-- helpdeskLinkURLs['+extURLCount+'] does not exist. check global_helpdesk_variables.js file for [\''+countryCode+'\',\''+helpdeskText[languageNumber][0]+'\'...] -->\n'
		}
	}
return tableCode;
}

function displayVars()
{
	var str='Helpdesk variables:';
	str+='\n[searched (found)]\n'
	str+='\n   countryCode = '+searchedCountryCode+' ('+foundCountryCode+')';
	str+='\n   language = '+searchedLanguage+' ('+foundLanguage+')';
	str+='\n   areYouOpen() = '+areYouOpen();
	str+='\n   daylightSaving = '+daylightSaving;
	str+='\n   localTimeNow = '+localTimeNow;
	str+='\n   UKTimeNow = '+UKTimeNow;
	str+='\n\n'+returnOpeningTimes();
	alert(str);
}

//ADSTAMP TRACKER
//-----------------------
//Simply call variable whenever you want
//by using:
//stamp = getCookie('adStamp');

//then use 'stamp' within your function
//-----------------------

function existCookie(name)
{ 
	return (getCookie('adStamp')=='')?false:true;
}

function getCookie(name)
{
	var dc = document.cookie;
	var prefix = name + "=";
	var begin = dc.indexOf("; " + prefix);
	if (begin == -1)
	{
		begin = dc.indexOf(prefix);        
		if (begin != 0) return null;
	}
	else
	{
		begin += 2;
	}
	var end = document.cookie.indexOf(";", begin);
	if (end == -1)
	end = dc.length;
	var GID=unescape(dc.substring(begin + prefix.length, end));
	return unescape(dc.substring(begin + prefix.length, end));
}

