    IE6 = false /*@cc_on || @_jscript_version < 5.7 @*/;
    IE7 = false /*@cc_on || @_jscript_version == 5.7 @*/;
	safari = is_safari();
	in_an_iframe=false;
	try{
		var abcd=top.location.href.toString();
	}
	catch(err){
		in_an_iframe=true;
	}
	syndicatedpage=false;

	function addLoadEvent(func) {
	    var oldonload = window.onload;
	    if (typeof window.onload != 'function') {
	        window.onload = func;
	    } else {
	        window.onload = function() {
	            if (oldonload) {
	                oldonload();
	            }
	            func();
	        }
	    }
	}

	function disablebutton(field){
//		field.value='Please wait...';
//		field.style.fontStyle='italic';
        field.style.display='none';
		//field.disabled=true;
	}

	/**
	 * Simple hide / show of an element.
	 *
	 * Just call $(elementid).show() / .hide()
	 */
	Element.extend({
		show: function(){
			this.setStyle('display','');
		},
		hide: function(){
			this.setStyle('display','none');
		},
		slide: function(field){
			if(this.hasClass('miniminus')){	
				this.removeClass('miniminus').addClass('miniplus');
				eval("if("+this.id+"==undefined){"+this.id+"=new Fx.Slide('"+field+"');}");
				eval(this.id+".slideOut();" );
			}
			else{
				this.removeClass('miniplus').addClass('miniminus');
				eval("if("+this.id+"==undefined){"+this.id+"=new Fx.Slide('"+field+"');}");
				eval(this.id+".slideIn();" );
			}
		},
		highlight: function(){
			this.setStyle('background','red')
		},
		unhighlight: function(){
			this.setStyle('background','black')
		}

	});

	function makeUrl(form){
		url='';
		for(i=0; i<form.elements.length; i++){
			ele=form.elements[i];
			if(ele.type=="checkbox"){
				if(ele.checked)
					url=url+ele.name+'='+ele.checked+'&';
			}
			else if(ele.type=="radio"){
				if(ele.checked)
					url=url+ele.name+'='+ele.value+'&';
			}
			else{
			    ele.value=ele.value.replace(/\&/,"%%%%");
				url=url+ele.name+'='+ele.value+'&';
			}
		}
		return url;
	}

	function strrpos( haystack, needle){
	    // http://kevin.vanzonneveld.net
	    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
	    // *     example 1: strrpos('Kevin van Zonneveld', 'e');
	    // *     returns 1: 16

	    var i = haystack.lastIndexOf( needle ); // returns -1
	    return i >= 0 ? i : false;
	}

	function ajax_show(url,item_id,loading,container){
//		if(strrpos(url,'addservice') || strrpos(url,'addresource')){
//			new_ajax_show(url,item_id,loading,container);
//		}
//		else
			old_ajax_show(url,item_id,loading,container);
	}

	function ajax_save(url,item_id,loading,container,message){
//		if(strrpos(url,'addservice') || strrpos(url,'addresource'))
//			new_ajax_save(url,item_id,loading,container,message);
//		else
			old_ajax_save(url,item_id,loading,container,message);
	}

	function new_ajax_show(url, item_id, loading, container){
		item_id=makeUrl(item_id);
		var xmlHttp=null;
		try
		  {// Firefox, Opera 8.0+, Safari, IE7
		  xmlHttp=new XMLHttpRequest();
		  }
		catch(e)
		  {// Old IE
		  try
		    {
		    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		    }
		  catch(e)
		    {
		    alert ("Your browser does not support XMLHTTP!");
		    return;
		    }
		  }
		xmlHttp.open("POST",url,true);
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp.setRequestHeader("Content-length", item_id.length);
		xmlHttp.setRequestHeader("Connection", "close");
		xmlHttp.onreadystatechange = function() {//Call a function when the state changes.
		  if (xmlHttp.readyState==4)
		  {// 4 = "loaded"
		  if (xmlHttp.status==200)
		    {// 200 = "OK"
				document.getElementById(container).innerHTML=xmlHttp.responseText;
		    }
		  else
		    {
		    	alert("Problem retrieving data:" + xmlhttp.statusText);
		    }
		  }
		}
		xmlHttp.send(item_id);
	}

	// Simple AJAX calls
	function old_ajax_show(url, item_id, loading, container) {
		var showFailure = function(){
			//alert('Call failed!');
		}
		new Ajax(
			url,
				{
						onRequest: function(){
						//	$(loading).style.display='block';;
						},
						postBody: item_id,
						onFailure: showFailure,
						onSuccess: function(req){
							$(container).innerHTML=req;
							if($(loading)){
                                $(loading).style.display='none';
                            }
						},
						evalScripts: true
				}
		).request();
	}

	function new_ajax_save(url, item_id, loading, container, message){
		item_id=makeUrl(item_id);
		var xmlHttp=null;
		try
		  {// Firefox, Opera 8.0+, Safari, IE7
		  xmlHttp=new XMLHttpRequest();
		  }
		catch(e)
		  {// Old IE
		  try
		    {
		    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		    }
		  catch(e)
		    {
		    alert ("Your browser does not support XMLHTTP!");
		    return;
		    }
		  }
		xmlHttp.open("POST",url,true);
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp.setRequestHeader("Content-length", item_id.length);
		xmlHttp.setRequestHeader("Connection", "close");
		xmlHttp.onreadystatechange = function() {//Call a function when the state changes.
		  if (xmlHttp.readyState==4)
		  {// 4 = "loaded"
		  if (xmlHttp.status==200)
		    {// 200 = "OK"
			document.getElementById(container).innerHTML=message;
		    }
		  else
		    {
		    alert("Problem retrieving data:" + xmlhttp.statusText);
		    }
		  }
		}
		xmlHttp.send(item_id);
	}

	function old_ajax_save(url, item_id, loading, container, message) {
		var showFailure = function(){
			//alert('Call failed!');
		}

		new Ajax(
			url,
				{
						onRequest: function(){
						//	$(loading).style.display='block';
						},
						postBody: item_id,
						onFailure: showFailure,
						onSuccess: function(req){						
							$(container).innerHTML=message;
						//	$(loading).style.display='none';					
						},
						evalScripts: true
				}
		).request();
	}

	function isAlpha(evt)
	{
		var charCode = (evt.which) ? evt.which : event.keyCode
		if (charCode==32 || charCode==33 || charCode==39 || charCode==45 || charCode==46 || (charCode>64 && charCode<91) || (charCode>96 && charCode<123))
			return true;

		return false;
	}
	
	function isNumberKey(evt)
	{
		var charCode = (evt.which) ? evt.which : event.keyCode
		if (charCode > 31 && (charCode < 48 || charCode > 57))
			return false;

		return true;
	}

	function isNumberKeyAdjustment(evt)
	{
		var charCode = (evt.which) ? evt.which : event.keyCode
		if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode!=46 && charCode!=43 && charCode!=45)
			return false;

		return true;
	}

	function isCost(evt)
	{
		var charCode = (evt.which) ? evt.which : event.keyCode
		if ((charCode > 31 && (charCode < 48 || charCode > 57)) && charCode!=46 && charCode!=44)
			return false;

		return true;
	}

	function is_safari(){
BrowserDetect = {
			init: function () {
				this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
				this.version = this.searchVersion(navigator.userAgent)
					|| this.searchVersion(navigator.appVersion)
					|| "an unknown version";
				this.OS = this.searchString(this.dataOS) || "an unknown OS";
			},
			searchString: function (data) {
				for (var i=0;i<data.length;i++)	{
					var dataString = data[i].string;
					var dataProp = data[i].prop;
					this.versionSearchString = data[i].versionSearch || data[i].identity;
					if (dataString) {
						if (dataString.indexOf(data[i].subString) != -1)
							return data[i].identity;
					}
					else if (dataProp)
						return data[i].identity;
				}
			},
			searchVersion: function (dataString) {
				var index = dataString.indexOf(this.versionSearchString);
				if (index == -1) return;
				return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
			},
			dataBrowser: [
				{ 	string: navigator.userAgent,
					subString: "OmniWeb",
					versionSearch: "OmniWeb/",
					identity: "OmniWeb"
				},
				{
					string: navigator.vendor,
					subString: "Apple",
					identity: "Safari"
				},
				{
					prop: window.opera,
					identity: "Opera"
				},
				{
					string: navigator.vendor,
					subString: "iCab",
					identity: "iCab"
				},
				{
					string: navigator.vendor,
					subString: "KDE",
					identity: "Konqueror"
				},
				{
					string: navigator.userAgent,
					subString: "Firefox",
					identity: "Firefox"
				},
				{
					string: navigator.vendor,
					subString: "Camino",
					identity: "Camino"
				},
				{		// for newer Netscapes (6+)
					string: navigator.userAgent,
					subString: "Netscape",
					identity: "Netscape"
				},
				{
					string: navigator.userAgent,
					subString: "MSIE",
					identity: "Explorer",
					versionSearch: "MSIE"
				},
				{
					string: navigator.userAgent,
					subString: "Gecko",
					identity: "Mozilla",
					versionSearch: "rv"
				},
				{ 		// for older Netscapes (4-)
					string: navigator.userAgent,
					subString: "Mozilla",
					identity: "Netscape",
					versionSearch: "Mozilla"
				}
			],
			dataOS : [
				{
					string: navigator.platform,
					subString: "Win",
					identity: "Windows"
				},
				{
					string: navigator.platform,
					subString: "Mac",
					identity: "Mac"
				},
				{
					string: navigator.platform,
					subString: "Linux",
					identity: "Linux"
				}
			]

		};
		BrowserDetect.init();
		if(BrowserDetect.browser=="Safari"){
			return true;
		}
		return false;
	}

	function changebutton(buttoncolor){
		var buttons = document.getElements("."+buttoncolor+"button");
		for (var i=0; i<buttons.length; i++) {
			// only do this for buttons that are visible
			if(buttons[i].offsetWidth>0 && (!IE6 || (IE6 && buttons[i].rel!="noupdate"))){
				// deifnitions for the button segments and the container that holds them
				var container = new Element("div");
				if(buttons[i].id)
					container.id=buttons[i].id;
				container.className='buttoncontainer';
				container.style.cssText=buttons[i].style.cssText;
				if(IE6)
					container.style.width='auto';
				else
					container.style.width=(buttons[i].offsetWidth+38)+'px';
				container.style.position='relative';
				container.style.clear='none';
				var el = new Element("span");
				el.className=buttoncolor+'start start pngfix';
				el.innerHTML='&nbsp;';
				if(IE6)
					el.style.marginTop='0px';
				else if(BrowserDetect.browser=="Firefox" && BrowserDetect.version=="3"){
					el.style.marginTop='2px';
                }
				var el2 = new Element("span");
				el2.className=buttoncolor+'end end pngfix';
				el2.innerHTML='&nbsp;';
				var el3 = new Element("span");
				el3.className=buttoncolor+'middle middle pngfix';
				el3.style.width=(buttons[i].offsetWidth)+'px';

				// the actual clickable button
				var copyboy = new Element(buttons[i].tagName);
				if(buttons[i].onclick)
					copyboy.onclick=buttons[i].onclick;
				if(buttons[i].tagName=="INPUT")
					copyboy.type=buttons[i].type;
				if(buttons[i].value)
					copyboy.value=buttons[i].value;
				if(buttons[i].href)
					copyboy.href=buttons[i].href;
				if(buttons[i].innerHTML)
					copyboy.innerHTML=buttons[i].innerHTML;
				if(buttons[i].rel)
					eval(buttons[i].rel);
				if(buttons[i].tagName=="INPUT" || buttons[i].tagName=="BUTTON"){	// if it's a submit button
					copyboy.className='hovercolorbutton';
					copyboy.style.width=(buttons[i].offsetWidth+24)+'px';
					copyboy.style.height=(buttons[i].offsetHeight)+'px';
					if(IE6 && (!buttons[i].ie6 || (buttons[i].ie6 && buttons[i].ie6!="noleft")))
						copyboy.style.left='-'+(buttons[i].offsetWidth+29)+'px';
					else if(IE7)
						copyboy.style.width=(buttons[i].offsetWidth+34)+'px';
				}
				else{ // if it's a link
					copyboy.className='hovercolorbutton';
					copyboy.style.width=(buttons[i].offsetWidth+24)+'px';
					copyboy.style.height=(buttons[i].offsetHeight)+'px';
					copyboy.style.paddingLeft='7px';
					copyboy.style.color='white';
					copyboy.style.fontSize='12px';
					copyboy.style.textDecoration='none';
					if(copyboy.innerHTML.length<=10)
						copyboy.style.paddingTop='6px';
					else if(copyboy.innerHTML.length>15){
						copyboy.style.paddingTop='6px';
						copyboy.style.paddingLeft='8px';
					}
					else
						copyboy.style.paddingTop='6px';
					if(IE6){
						if((!buttons[i].ie6 || (buttons[i].ie6 && buttons[i].ie6!="noleft")))
							copyboy.style.left='-'+(buttons[i].offsetWidth+29)+'px';
					 	copyboy.style.width=(buttons[i].offsetWidth+19)+'px';
						copyboy.style.height=(buttons[i].offsetHeight-10)+'px';
					}
					else if(IE7)
						copyboy.style.width=(buttons[i].offsetWidth+34)+'px';
				}

				// put the buttons in their place
				el.injectInside(container);
				el3.injectInside(container);
				el2.injectInside(container);
				copyboy.injectInside(container);
				buttons[i].replaceWith(container);
			}
		}
	}

	function changebuttons(){
		changebutton('green');
		changebutton('red');
		changebutton('black');
	}

function checkRefresh()
{
	// Get the time now and convert to UTC seconds
	var today = new Date();
	var now = today.getUTCSeconds();

	// Get the cookie
	var cookie = document.cookie;
	var cookieArray = cookie.split('; ');

	// Parse the cookies: get the stored time
	for(var loop=0; loop < cookieArray.length; loop++)
	{
		var nameValue = cookieArray[loop].split('=');
		// Get the cookie time stamp
		if( nameValue[0].toString() == 'SHTS' )
		{
			var cookieTime = parseInt( nameValue[1] );
		}
		// Get the cookie page
		else if( nameValue[0].toString() == 'SHTSP' )
		{
			var cookieName = nameValue[1];
		}
	}

	if( cookieName &&
		cookieTime &&
		cookieName == escape(location.href) &&
		Math.abs(now - cookieTime) < 5 )
	{
		// Refresh detected

		// Insert code here representing what to do on
		// a refresh

//		url=document.referrer.toString();
//		if(url.substring(0,21)!="http://www.bookitlive" && url.substring(0,21)!=""){	// if it's syndicated
//			window.location=window.location.toString().replace("bookitlive.com.au/","bookitlive.com.au/syndicate_me/");
//		}
//		else{
//			alert(url);
//		}
//		var ar = string.match(/<span id="ItemsInCart">(.*)<\/span>/);
//		 $('ItemsInCart').innerHTML=RegExp.$1;

		if(in_an_iframe && syndicatedpage)
			var donothing="okay";
		else if(in_an_iframe){ // not syndicated but should be
			if(IE6){
				var donothing="okay";
			}
			else{
			    if(window.location.toString().indexOf('bookitlive.net'))
    				window.location=window.location.toString().replace("bookitlive.net/","bookitlive.net/syndicate_me/");
                else window.location=window.location.toString().replace("bookitlive.com.au/","bookitlive.net/syndicate_me/");
			}
		}

		// If you would like to toggle so this refresh code
		// is executed on every OTHER refresh, then
		// uncomment the following line
		// refresh_prepare = 0;
	}

	// You may want to add code in an else here special
	// for fresh page loads
}

function prepareForRefresh()
{
	if( refresh_prepare > 0 )
	{
		// Turn refresh detection on so that if this
		// page gets quickly loaded, we know it's a refresh
		var today = new Date();
		var now = today.getUTCSeconds();
		document.cookie =  'SHTS=' + now + ';';
		document.cookie = 'SHTSP=' + escape(location.href) + ';';

	}
	else
	{
		// Refresh detection has been disabled
		document.cookie = 'SHTS=;';
		document.cookie = 'SHTSP=;';
	}
}

function disableRefreshDetection()
{
	// The next page will look like a refresh but it actually
	// won't be, so turn refresh detection off.
	refresh_prepare = 0;

	// Also return true so this can be placed in onSubmits
	// without fear of any problems.
	return true;
}

// By default, turn refresh detection on
var refresh_prepare = 1;

//if(in_an_iframe && window.location.toString().substring(0,38)!="http://www.bookitlive.com.au/syndicate")
//	window.location=window.location.toString().replace("bookitlive.com.au/","bookitlive.com.au/syndicate_me/");

	window.addEvent('domready',function(){
		checkRefresh();
		changebuttons();
		window.onunload=function(){
			prepareForRefresh();
		};
	});