<!--//
var cfg_title = "Benfield Construction";
var cfg_url = "http://www.benfieldconstruction.com";

var hasChanged = false;
//alert ("Library Loaded");

var dayNames = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");
var monthNames = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");

var lastgooglemaplookup;
var lastgooglegeocoder;

//sets session length to 25 mins
if (!sessionlength)
{
	var sessionlength = 25 * 60 * 1000;
}
//checks session every 30s
var sessioncheckinginterval = 30000;
var sessioninterval;
var sessiontimeremaining;

function findObj(theObj, theDoc) {

	var p, i, foundObj;
	
	if(!theDoc) theDoc = document;
	if((p = theObj.indexOf("?")) > 0 && parent.frames.length) {
		theDoc = parent.frames[theObj.substring(p+1)].document;
		theObj = theObj.substring(0,p);
	}
	if(!(foundObj = theDoc[theObj]) && theDoc.all) foundObj = theDoc.all[theObj];
	for (i=0; !foundObj && i < theDoc.forms.length; i++) 
	foundObj = theDoc.forms[i][theObj];
	for(i=0; !foundObj && theDoc.layers && i < theDoc.layers.length; i++) 
	foundObj = findObj(theObj,theDoc.layers[i].document);
	if(!foundObj && document.getElementById) foundObj = document.getElementById(theObj);
	
	return foundObj;

}

function isArray(a)
{
	return isObject(a) && a.constructor == Array;
}

function isFunction(a)
{
	return typeof a == 'function';
}

function isObject(a)
{
	return (a && typeof a == 'object') || isFunction(a);
}

function newImage(arg) {
	if (document.images) {
		rslt = new Image();
		rslt.src = arg;
		return rslt;
	}
}

function changeImages() {
	if (document.images) {
		for (var i=0; i<changeImages.arguments.length; i+=2) {
			document[changeImages.arguments[i]].src = changeImages.arguments[i+1];
		}
	}
}

function submitForm(formName) {
	
	fm = findObj(formName);
	//alert(formName);
	//alert(fm);
	//alert(fm.submit);
	fm.submit();
	
}

function toggledisplay(dvname)
{
	if (dv = findObj(dvname))
	{
		if (dv.style.display == "none")
		{
			dv.style.display = "";
		}
		else
		{
			dv.style.display = "none";
		}
	}
}

function isEmail(str) {
	var ret = true;
	if (str.indexOf("@")<=0) {
		ret = false;
	}
	if (str.lastIndexOf(".")<str.indexOf("@")) {
		ret = false;
	}
	return ret;
}

function validateEnquiryForm() {
	var dm = document.forms["contactform"];
	var errorMsg = "";
	
	if (!dm.name.value) {
		errorMsg = errorMsg + "Name is required\n";
	}
	if (!((dm.tel.value)||(dm.email.value))) {
		errorMsg = errorMsg + "Telephone Number or E-mail address are required\n";
	}
	if (!isEmail(dm.email.value)&&dm.email.value.length>0) {
		errorMsg = errorMsg + "Invalid E-mail Address\n";
	}
	if (!((dm.subject.value)||(dm.comments.value))) {
		errorMsg = errorMsg + "Subject or Comments are required";
	}
	if (errorMsg) {
		alert(errorMsg);
		return false;
	} else {
		return true;
	}
}

function verifyCheckoutForm() {

	var ret = "";
	var currentUserName = "";
	
	bs = findObj("btn_submit");
	bs.enabled = false;	
	
	bfn = findObj("bill_firstname");
	bln = findObj("bill_lastname");
	
	bs1 = findObj("bill_street1");
	bci = findObj("bill_city");
	bco = findObj("bill_country");
	bpc = findObj("bill_postcode");
	
	eml = findObj("email");
	tel = findObj("telephone");
	
	if ((bfn.value=="")||(bln.value=="")) {
		ret += "Please enter your name\n";
	}
	if ((bs1.value=="")||(bci.value=="")||(bpc.value=="")) {
		ret += "Please enter your full address\n";
	}
	if (eml.value=="") {
		ret += "Please enter a contact e-mail address\n";
	} else if (!isEmail(eml.value)) {
		ret += "The contact e-mail address is invalid\n";
	}
	if (tel.value=="") {
		ret += "Please enter a contact telephone number\n";
	}

	//luhnVerify(cnm.value);		
	
	cocheck = findObj("completeorder")
	cocheck.value = "confirm";
	
	if (ret=="") {
		return true;
	} else {
		alert(ret);
		bs.enabled = true;
		return false;
	}
	
}

function verifyEmailToFriendForm()
{
	tn = findObj("toname");
	te = findObj("toemail");
	su = findObj("subject");
	fn = findObj("fromname");
	fe = findObj("fromemail");
	
	ret = ""
	
	if (!tn.value)
	{
		ret += "Recipient's Name is required\n";
	}
		
	if (!te.value)
	{
		ret += "Recipient's E-mail Address is required\n";
	}
		
	if (!su.value)
	{
		ret += "Subject is required\n";
	}
		
	if (!fn.value)
	{
		ret += "Sender's Name is required\n";
	}
		
	if (!fe.value)
	{
		ret += "Sender's E-mail Address is required\n";
	}
		
	if (ret=="")
	{
		return true;
	}
	else
	{
		alert(ret);
		return false;
	}
}

function readContent(ref) {
	//displays a popup containing the specified contentitem
	
	window.open("content.php?ref="+ref, "content", "width=400, height=400, toolbars=no, statusbar=no, scrollbars=yes");
	
}

function cardType(ref, title, externalref, issuedate, issuenum, luhnverify, available) {
	this.ref = ref;
	this.title = title;
	this.externalref = externalref;
	this.issuedate = issuedate;
	this.issuenum = issuenum;
	this.luhnverify = luhnverify;
	this.available = available;
}

arCardTypes = new Array();

/*
<?
$cts = new cardtypes(true, "cardtypes.title");
foreach ($cts->cardtypes as $c) {
	echo "
arCardTypes[".$c->ref."] = new cardType(".$c->ref.", '".$c->title."', '".$c->externalref."', '".$c->issuedate."', '".$c->issuenum."', '".$c->luhnverify."', '".$c->available."');
	";
}
?>
*/

function luhnVerify(cardnumber) {

	var cnum = new String(cardnumber);
	cnum = cnum.replace("\s","");
	strlen = cnum.length;
	
	i = strlen-1;
	sum = 0;
	
	while (i>=0) {
		cchar = cnum.charAt(i);
		num = Number(cchar);
		alert(cchar + "=>" + num)
		sum += num;
		i--;
		
		if (i>=0) {
			cchar = cnum.charAt(i);
			num = Number(cchar);
			num = (num * 2);
			if (num>9) {
				num -= 9;
			}
			alert(cchar + "=>" + num)
			sum += num;
			i--;
		}
	}
	
	alert("abc");
	alert("sum = " + String(sum));

}

function isEmail(str) {
	var ret = true;
	if (str.indexOf("@")<=0) {
		ret = false;
	}
	if (str.lastIndexOf(".")<str.indexOf("@")) {
		ret = false;
	}
	return ret;
}

function setDeliveryVisibility() {
	
	var dt = findObj("deltype");
	
	var delTitle = findObj("delTitle");
	var delName = findObj("delName");
	var delAddress = findObj("delAddress");
	var delCity = findObj("delCity");
	var delCounty = findObj("delCounty");
	var delCountry = findObj("delCountry");
	var delPostcode = findObj("delPostcode");
	
	if (dt.options[dt.selectedIndex].value==1) {
		delTitle.style.display = "";
		delName.style.display = "";
		delAddress.style.display = "";
		delCity.style.display = "";
		delCounty.style.display = "";
		delCountry.style.display = "";
		delPostcode.style.display = "";
	} else {
		delTitle.style.display = "none";
		delName.style.display = "none";
		delAddress.style.display = "none";
		delCity.style.display = "none";
		delCounty.style.display = "none";
		delCountry.style.display = "none";
		delPostcode.style.display = "none";
	}
	
}

function setCardVisibility() {
	
	var ct = findObj("cardtype");
	
	if (ct)
	{
		var ctp = ct.options[ct.selectedIndex].value;
		
		var cid = findObj("cardIssueDate");
		var cin = findObj("cardIssueNumber");
		
		var cvv2 = findObj("cardCvv2");
		
		if ((ctp==1)||(ctp==2)||(ctp==8)) {
			cvv2.style.display = "";
		} else {
			cvv2.style.display = "none";
		}
		
		if ((ctp==9)||(ctp==10)) {
			cid.style.display = "";
			cin.style.display = "";
		} else {
			cid.style.display = "none";
			cin.style.display = "none";
		}
	}
}

function showcontentpermissionspopup(currentpageref, contentitemref)
{
		url = "siteengine/tinymce/plugins/advimage/userpermissions.php?contentref=" + contentitemref + "&categoryref=" + currentpageref;
		window.open(url, 'ciperms',  'width=500, height=400, scrollbars=1, statusbar=0, toolbars=0');
}

function showcontentitemedit(contentitemref)
{
		url = "editcontentitem.php?contentitemref=" + contentitemref + "&hidemenubar=true";
		window.open(url, 'ciperms',  'width=750, height=400, scrollbars=1, statusbar=0, toolbars=0');
}

function showcontentitempreview(contentitemref)
{
		url = "previewcontentitem.php?contentitemref=" + contentitemref;
		window.open(url, 'ciperms',  'width=500, height=400, scrollbars=1, statusbar=0, toolbars=0');
}

function showuserpermissionspopup(userref)
{
		url = "siteengine/cms/user_userpermissions.php?userref=" + userref;
		window.open(url, 'ciperms',  'width=500, height=400, scrollbars=1, statusbar=0, toolbars=0');
}

//returns the cursor position based on the event
function getCursorPosition(ev)
{
    ev = ev || window.event;
	
    if(ev.pageX || ev.pageY)
    {
		return {x:ev.pageX, y:ev.pageY};
	}
	return  {x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,y:ev.clientY + document.body.scrollTop  - document.body.clientTop};
}


function getMouseOffset(target, ev){
	ev = ev || window.event;

	var docPos    = getCursorPosition(target);
	var mousePos  = getCursorPosition(ev);
	return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y};
}

function getPosition(e)
{
	var left = 0;
	var top  = 0;

	while (e.offsetParent){
		left += e.offsetLeft;
		top  += e.offsetTop;
		e     = e.offsetParent;
	}

	left += e.offsetLeft;
	top  += e.offsetTop;

	return {x:left, y:top};
}

//returns the scroll offset regardless of browser
function getScrollX()
{
	ret = 0;

	if (window.scrollX)
	{
		ret = window.scrollX;
	}
	else if (document.body.parentNode.scrollLeft)
	{
		ret = document.body.parentNode.scrollLeft;
	}
	else if (document.body.scrollLeft)
	{
		ret = document.body.scrollLeft;
	}
	
	return ret;
}

//returns the scroll offset regardless of browser
function getScrollY()
{
	ret = 0;

	if (window.scrollY)
	{
		ret = window.scrollY;
	}
	else if (document.body.parentNode.scrollTop)
	{
		ret = document.body.parentNode.scrollTop;
	}
	else if (document.body.scrollTop)
	{
		ret = document.body.scrollTop;
	}
	
	return ret;
}

//returns the scroll offset regardless of browser
function getDivScrollX(divname)
{
	ret = 0;

	dv = findObj(divname);
	
	if (dv.scrollX)
	{
		ret = dv.scrollX;
	}
	else if (dv.scrollLeft)
	{
		ret = dv.scrollLeft;
	}
	
	return ret;
}

//returns the scroll offset regardless of browser
function getDivScrollY(divname)
{
	ret = 0;

	dv = findObj(divname);
	
	if (dv.scrollY)
	{
		ret = dv.scrollY;
	}
	else if (dv.scrollTop)
	{
		ret = dv.scrollTop;
	}
	
	return ret;
}

//set the scroll offset to sX regardless of browser.  returns the new offset
function setDivScrollX(divname, sX)
{
	dv = findObj(divname);
	
	//alert("setting " + divname + " to " + sX);
	if (dv.scrollX)
	{
		dv.scrollX = sX;
		ret = dv.scrollX;
		//alert("using scrollX");
	}
	else
	{
		dv.scrollLeft = sX;
		ret = dv.scrollLeft;
		//alert("using scrollLeft");
	}
	
	return ret;
}

//sets the scroll offset to sY regardless of browser. returns the new offset
function setDivScrollY(divname, sY)
{
	if (dv.scrollY)
	{
		dv.scrollY = sY;
		ret = dv.scrollY;
	}
	else
	{
		dv.scrollTop = sY;
		ret = dv.scrollTop;
	}
	
	return ret;
}

function formatunixdate(date)
{
	var d = new Date(date * 1000);
	
	if (d.valueOf())
	{			
		chrval = String(d.getHours());
		cmnval = String(d.getMinutes());
		
		while (chrval.length<2)
		{
				chrval = "0" + chrval;
		}
		
		while (cmnval.length<2)
		{
				cmnval = "0" + cmnval;
		}
	
		ret = chrval + ":" + cmnval + "  " + d.toDateString();
	}
	else
	{
		ret = "No Date Specified";
	}
	
	return ret;
}

function formatdaterange(startdate, enddate)
//formats the date range appropriately
//startdate and enddate should be unix timestamps not js date objects
{
	var ret = "";
	
	sd = new Date(startdate * 1000);
	ed = new Date(enddate * 1000);
	
	sd.fullyear = sd.getFullYear();
	sd.month = sd.getMonth();
	sd.day = sd.getDate();
	sd.hour = sd.getHours();
	sd.minutes = sd.getMinutes();
	
	ed.fullyear = ed.getFullYear();
	ed.month = ed.getMonth();
	ed.day = ed.getDate();
	ed.hour = ed.getHours();
	ed.minutes = ed.getMinutes();
	
	sd.minutes = String(sd.minutes);
	ed.minutes = String(ed.minutes);

	while (sd.minutes.length<2)
	{
		sd.minutes  = "0" + sd.minutes;
	}

	while (ed.minutes.length<2)
	{
		ed.minutes  = "0" + ed.minutes;
	}

	if (sd.hour==0)
	{
		sd.hour = "12";
		sd.minutes = sd.minutes + "am";
	}
	else if (sd.hour > 12)
	{
		sd.hour = String(sd.hour - 12);
		sd.minutes = sd.minutes + "pm";
	}
	else
	{
		sd.hour = String(sd.hour);
		sd.minutes = sd.minutes + "am";
	}

	if (ed.hour==0)
	{
		ed.hour = "12";
		ed.minutes = ed.minutes + "am";
	}
	else if (ed.hour > 12)
	{
		ed.hour = String(ed.hour - 12);
		ed.minutes = ed.minutes + "pm";
	}
	else
	{
		ed.hour = String(ed.hour);
		ed.minutes = ed.minutes + "am";
	}

	sd.day += getdatedaysuffix(sd.day);
	ed.day += getdatedaysuffix(ed.day);
	
	/*

	sd.hour = String(sd.hour);
	sd.minutes = String(sd.minutes);
	ed.hour = String(ed.hour);
	ed.minutes = String(ed.minutes);

	while (sd.hour.length<2)
	{
		sd.hour  = "0" + sd.hour;
	}

	while (sd.minutes.length<2)
	{
		sd.minutes  = "0" + sd.minutes;
	}

	while (ed.hour.length<2)
	{
		ed.hour  = "0" + ed.hour;
	}

	while (ed.minutes.length<2)
	{
		ed.minutes  = "0" + ed.minutes;
	}
	*/
	if (startdate==enddate)
	{
		if((ed.hour=="12")&&(ed.minutes=="00am"))
		{
			ret += ed.day + " " + monthNames[ed.month] + ", " + ed.fullyear;
		}
		else
		{
			ret += ed.hour + ":" + ed.minutes + " " + ed.day + " " + monthNames[ed.month] + ", " + ed.fullyear;
		}
	}
	else if ((startdate>0)&&(enddate>0))
	{
		if (sd.fullyear==ed.fullyear)
		{
			if (sd.month==ed.month)
			{
				if (sd.day == ed.day)
				{
					ret += sd.hour + ":" + sd.minutes;
					ret += " to " + ed.hour + ":" + ed.minutes + " " + ed.day + " " + monthNames[ed.month] + ", " + ed.fullyear;			
				}
				else
				{
					ret += sd.hour + ":" + sd.minutes + " " + sd.day;
					ret += " to " + ed.hour + ":" + ed.minutes + " " + ed.day + " " + monthNames[ed.month] + ", " + ed.fullyear;			
				}
			}
			else
			{
				ret += sd.hour + ":" + sd.minutes + " " + sd.day + " " + monthNames[sd.month] + ", " + sd.fullyear;
				ret += " to " + ed.hour + ":" + ed.minutes + " " + ed.day + " " + monthNames[ed.month] + ", " + ed.fullyear;			
			}
		}
		else
		{
			ret += sd.hour + ":" + sd.minutes + " " + sd.day + " " + monthNames[sd.month] + ", " + sd.fullyear;
			ret += " to " + ed.hour + ":" + ed.minutes + " " + ed.day + " " + monthNames[ed.month] + ", " + ed.fullyear;
		}
	}
	else if (startdate>0)
	{
			ret += sd.hour + ":" + sd.minutes + " " + sd.day + " " + monthNames[sd.month] + ", " + sd.fullyear;		
	}
	else if (enddate>0)
	{
			ret += " to " + ed.hour + ":" + ed.minutes + " " + ed.day + " " + monthNames[ed.month] + ", " + ed.fullyear;
	}
	else
	{
		ret = "no Date Specified";
	}
	
	return ret;
}

function format_filesize(filesize, numdecimalplaces, includeunits)
//returns the amount specifed (in bytes) in the most appropriate format (KB, MB, GB etc);
{
	var filesizeunits = Array("B", "KB", "MB", "GB", "TB");
	
	if (!numdecimalplaces) numdecimalplaces = 2;

	ret = Number(filesize);
	unitcounter = 0;
	maxunits = filesizeunits.length - 1;
	
	while (ret >= 1000)
	{
		ret = ret / 1024;
		unitcounter++;
		if (unitcounter>=maxunits) break;
	}
	
	ret = ret.toFixed(numdecimalplaces);
	ret = String(ret);
	
	if (includeunits==true)
	{
		ret  += filesizeunits[unitcounter];
	}
	
	return ret;
}

function getdatedaysuffix(day)
{
	var ret = "";
	
	if (day)
	{
		day = String(day);
		
		if (day.length>1)
		{
			daysub1 = day.substr(day.length-1);
			daysub2 = day.substr(day.length-2, 1);
			
			if (daysub2=="1")
			{
				ret = "th";
			}
			else
			{
				switch (daysub1)
				{
					case "1":
						
						ret = "st";
						break;
						
					case "2":
					
						ret = "nd";
						break;
						
					case "3":
						
						ret = "rd";
						break;
						
					default:
						
						ret = "th";
						break;
				}
			}
		}
		else
		{
			switch (day)
			{
				case "1":
					
					ret = "st";
					break;
					
				case "2":
				
					ret = "nd";
					break;
					
				case "3":
					
					ret = "rd";
					break;
					
				default:
					
					ret = "th";
					break;
			}
		}
	}
	
	return ret;
}

function formatrelativedate(targetdate, relativedate)
//returns the date formatted as short as possible.  dates should be UNIX timestamps
//assumes relativedate>=targetdate
{
	var ret = "";
	
	td = new Date(targetdate * 1000)
	if (relativedate)
	{
		rd = new Date(relativedate * 1000);
	}
	else
	{
		rd = new Date();
	}
	
	rd0 = rd;
	rd0.setHours(0);
	rd0.setMinutes(0);
	rd0.setSeconds(0);
	
	dayinterval = 24 * 60 * 60 * 1000;
	weekinterval = dayinterval * 7;
	
	//rd0 = new Date(rd0.valueOf() + weekinterval);
	
	tdvo = td.valueOf();
	rdvo = rd0.valueOf();
	
	minutes = String(td.getMinutes());
	while (minutes.length < 2)
	{
		minutes = "0" + minutes;
	}

	if (tdvo > rdvo)
	//means that date is today
	{
		ret = td.getHours() + ":" + minutes;
	}
	else if (tdvo > (rdvo - dayinterval))
	{
		ret = td.getHours() + ":" + minutes + " Yesterday";
	}
	else if (tdvo > (rdvo - weekinterval + dayinterval))
	{
		ret = td.getHours() + ":" + minutes + " " + dayNames[td.getDay()];
	}
	else
	{
		ret = td.getHours() + ":" + minutes + " " + td.getDate() + "/" + (td.getMonth() + 1) + "/" + td.getFullYear();
	}

	return ret;

}

function stripHTML(oldString, keeplinebreaks) {
//returns the string with any html removed

	//keeplinebreaks = true;
	
	var ret = "";
	
	if (oldString)
	{
		if (keeplinebreaks)
		{
			ret = oldString.replace("<br/>", "\n");
			ret = oldString.replace("<br />", "\n");
			ret = oldString.replace("<br>", "\n");
			ret = ret.replace(/(<([^>]+)>)/ig, "");
			//ret = ret.replace("\\n", "<br>");
		}
		else
		{
			ret = oldString.replace(/(<([^>]+)>)/ig, "");		
		}
	}
	//alert ("Stripped = " + ret);
	return ret;
}

function editHTML(objecttype, ref, property, returntarget, content)
//shows the html editing popup
{
	window.open("edithtml.php?objecttype=" + objecttype + "&ref=" + ref + "&property=" + property + "&returntarget=" + returntarget + "&content=" + content, "htmleditor", "width=700, height=600, toolbars=no, statusbar=no, resizable=yes, scrollbars=yes");
}

function nl2br(str)
{
	ret = "";
	
	str = new String(str);
	
	str = str.replace(/\r\n/g, "\n");
	str = str.replace(/\r/g, "\n");
	str = str.replace(/\n/g, "<br>");
	
	ret = str;
	
	return ret;
}

function array_removebyindex(target, index)
{
	var ret = new Array();
	var i;
	
	for (i=0; i<target.length; i++)
	{
		if (i!=index) ret.push(target[i]);
	}
	
	return ret;
	
}

function array_removebyvalue(target, value)
{
	var ret = new Array();
	var i;
	
	for (i=0; i<target.length; i++)
	{
		if (target[i]!=value) ret.push(target[i]);
	}
	
	return ret;
	
}

function array_search(target, value)
{
	var ret = false;
	var i;
	
	for (i=0; i<target.length; i++)
	{
		if (target[i]==value)
		{
			ret = i;
			break;
		}
	}
	
	return ret;
}

function startsessiontimer()
{
	st = findObj("sessiontimer");
	//alert("starting timer");
	//alert(st);
	
	sessiontimeremaining = sessionlength;
	
	st = findObj("sessiontimer");
	if (st) st.innerHTML = "";
	
	if (sessioninterval) window.clearInterval(sessioninterval);
	if ((sessionlength - sessioncheckinginterval) < sessioncheckinginterval)
	{
		sessioninterval = window.setInterval("displaysessiontimer()", 1000);
	}
	else
	{
		sessioninterval = window.setInterval("updatesessiontimer()", sessioncheckinginterval);
	}
	
	//alert("timer started");
}

function updatesessiontimer()
{
	//alert("updating timer");
	sessiontimeremaining -= sessioncheckinginterval;
	
	if (sessiontimeremaining < (sessioncheckinginterval * 2))
	{
		window.clearInterval(sessioninterval);
		sessioninterval = window.setInterval("displaysessiontimer()", 1000);
	}
}

function displaysessiontimer()
{
	st = findObj("sessiontimer");
	if (st)
	{
		if (sessiontimeremaining>0)
		{
			st.innerHTML = Math.floor(sessiontimeremaining / 1000) + "s until logout";
			sessiontimeremaining -= 1000;
		}
		else
		{
			st.innerHTML = "<span style=\"color: #ff0000\">You have been logged out</span>";
			alert("You have been logged out");
			window.clearInterval(sessioninterval);
		}
	}
}

function renewsession()
{
	var createparams = Array();
	var params = Array();
	
	call_object_method("cms_users", "renewsession", createparams, params, false, renewsessioncallback);
}

function renewsessioncallback()
{
	if (xmlhttp.readyState==4)
	{
		ret = eval(xmlhttp.responseText);
		
		if (ret == true)
		{
			alert ("Session timer reset");
		}
		else
		{
			alert ("Could not reset session timer, you may have already been logged out");
		}
		ajax_reset();
	}
}

function downloaddata(objecttype, refs, downloadtype)
//shows the downloading popup
{
	var downloadfunction;
	
	switch (downloadtype)
	{
		case "downloadcsv":
			
			downloadfunction = "downloadcsv";
			
			break;
			
		case "downloadfroogle":
			
			downloadfunction = "downloadfroogle";
			
			break;
		
		case "downloadpictures":
		
			downloadfunction = "downloadpictures";
			
			break;
		
		default:
			
			downloadfunction = "downloadxml";
			
			break;
	}
	
	ddwin = window.open("downloaddata.php?objecttype=" + objecttype + "&refs=" + refs + "&function=" + downloadfunction, "downloaddata", "width=300, height=300, toolbars=no, statusbar=no, resizable=yes, scrollbars=yes");
	ddwin.close();
}

function insertgooglemap(targetdv, latitude, longitude, zoom) 
{
	
	//alert("checking compaitibility");
	if (GBrowserIsCompatible()) 
	{
		//alert("loading map - la:" + latitude + ", lo:" + longitude + ", zo:" + zoom);
		var map = new GMap2(document.getElementById(targetdv));
		map.setCenter(new GLatLng(latitude, longitude), zoom);
		map.addControl(new GSmallZoomControl());
		map.addControl(new GMapTypeControl());
		
	}
}

function reloadflash()
//this function reloads all the flash in a page to avoid the "Click here to activate" issue
{
    theObjects = document.getElementsByTagName("object");
    for (var i = 0; i < theObjects.length; i++) 
    {
        theObjects[i].outerHTML = theObjects[i].outerHTML;
    }    

}

function getElementsByClassName(oElm, strTagName, strClassName)
{
    var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
    var arrReturnElements = new Array();
    strClassName = strClassName.replace(/\-/g, "\\-");
    var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
    var oElement;
    for(var i=0; i<arrElements.length; i++)
    {
        oElement = arrElements[i];      
        if(oRegExp.test(oElement.className))
        {
            arrReturnElements.push(oElement);
        }   
    }
    return (arrReturnElements)
}

startsessiontimer();