// this script is made with AJAX: Asynchronous JavaScript and XML
//
//	Author: Nico Lubbers		
//   www.booleanpark.com
//

var useAJAX = true;
var globalURL;
var needToRepopulate = false;
var AvailabilityPanelLocation = "/datapark/AvailabilityPanelXml.aspx"
if(typeof useCabsJS == 'undefined')
{
    alert("useCabsJS is undefined");
}
else if (useCabsJS)
{
    AvailabilityPanelLocation = "/datapark/AvailabilityPanelXmlCabs.aspx"
    if(typeof useCabsProxyJS == 'undefined')
    {
        alert("useCabsProxyJS is undefined");
    }
    else if (useCabsProxyJS)
    {
        AvailabilityPanelLocation = "/datapark/AvailabilityPanelXmlCabsProxy.aspx"
    }
}

function strltrim() {return this.replace(/^\s+/,'');}
function strrtrim() {return this.replace(/\s+$/,'');}
function strtrim() {return this.replace(/^\s+/,'').replace(/\s+$/,'');}
String.prototype.ltrim = strltrim;
String.prototype.rtrim = strrtrim;
String.prototype.trim = strtrim;

var cntCode,prkCode; // from parkselector

var agt=navigator.userAgent.toLowerCase();
var is_ie     = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
var is_mac    = (agt.indexOf("mac")!=-1);
var is_safari = (agt.indexOf("safari")!=-1);
var is_gecko = (agt.indexOf('gecko') != -1);
// netscape6.x implementatie werkt niet met AJAX
if (is_gecko && !is_safari) 
	useAJAX = false;

var theTimer;

var xmlDoc;
var isLoadingXML = false;
var thema;
var taalcode;

// global flag
var isIE = false;
// global request and XML document objects
var req;
function loadXMLDoc(url) {
	globalURL = url;
    // branch for native XMLHttpRequest object
	if (isLoadingXML) {
		req.abort();
	}
	isLoadingXML = true;
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.onreadystatechange = processReqChange;
        req.open("GET", url, true);
        req.send(null);
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        isIE = true;
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = processReqChange;
            req.open("GET", url, true);
            req.send();
        }
    }
}

// handle onreadystatechange event of req object
function processReqChange() {
    // only if req shows "loaded"
    if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200) {
				parseAll();
         } else {
            alert("There was a problem retrieving the XML data:\n(" + req.status + ") " +
                req.statusText);
                //exception;
         }
    }
}

	function loadXML(xmlFile) {
		if (!useAJAX)
		{
			if (isLoadingXML)
				// XML is currently loading -> cancel request
				xmlDoc.abort();
				
			if (document.implementation && document.implementation.createDocument) {
				// hier komt safari ook terecht
				xmlDoc = document.implementation.createDocument("","", null);
				isLoadingXML = true;
				xmlDoc.onload = parseAll;
			}
			else if (window.ActiveXObject) {
				xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
				isLoadingXML = true;
				xmlDoc.onreadystatechange = function () { if (xmlDoc.readyState == 4) parseAll(); }
			}
			else {
				//alert('Deze zoek-functie werkt alleen op de volgende browsers:\nInternet Explorer 5.0 of hoger\nNetscape 6.0 of hoger\nMozilla \nFirefox');
				return;
			}
		}

		// disable all options to prevent changes while xml is loading
		// display loading movie
		theTimer = setTimeout('hidePanel()',200);
		
		var dropdownptr;
	    dropdownptr = document.getElementById('avstay');
		    if (dropdownptr!=null) dropdownptr.disabled = true;
		dropdownptr = document.getElementById('avym');
			if (dropdownptr!=null) dropdownptr.disabled = true;
		dropdownptr = document.getElementById('avdd');
			if (dropdownptr!=null) dropdownptr.disabled = true;
        if (thema!='campings')
        {
    		dropdownptr = document.getElementById('avnum');
	    		if (dropdownptr!=null) dropdownptr.disabled = true;
		}
		if (thema=='campings')
        {
		    dropdownptr = document.getElementById('avprk');
			    if (dropdownptr!=null) dropdownptr.disabled = true;
	    	dropdownptr = document.getElementById('avstaytype');
    			if (dropdownptr!=null) dropdownptr.disabled = true;
		}

		if(useAJAX)
			loadXMLDoc(xmlFile);
		else
			xmlDoc.load(xmlFile);
	}
	
	function hidePanel() {
		var theMovie = document.getElementById('theloadingmovie');
		var thePanel = document.getElementById('availabilityform');
		var theCNDMovie = document.getElementById('bookNowLoading');
		var theCNDPanel = document.getElementById('bookNowFieldset');
		if(theMovie)
			theMovie.style.display = 'block';
		if(thePanel)
			thePanel.style.display = 'none';
		if(theCNDMovie)
			theCNDMovie.style.display = 'block';
		if(theCNDPanel)
			theCNDPanel.style.display = 'none';
	}

	function populateXMLSelect(fieldptr,tagname) {
		var urlString = location.href;
		var selectedID='', disableOption = false;
		var mustPopulate = true;
		
		//alert(tagname);
			
		if(tagname == 'ds')
			mustPopulate = false;
			
		// check if <select> object exists. 
		// delete values in it to repopulate again
		if (fieldptr != null && mustPopulate) {
			if (fieldptr.selectedIndex != null) {
				if (fieldptr.selectedIndex != -1) {
					if (fieldptr.options.length >= 0) {
			 			// delete all options
						fieldptr.options.length = 0;
			 		}
		 		}
		 	}
		}

		// populate option-list with the XML-tag values
		var collection;
		var defaultStay = '';

		if (useAJAX)
		{
			collection= req.responseXML.getElementsByTagName(tagname);
		}
		else
		{
			collection = xmlDoc.getElementsByTagName(tagname);
		}
		dropdowncnt = 0;
		
		if(tagname == 'ds' && typeof(collection) != 'undefined' && collection.length == 1)
		{
			//alert('set default stay of: '+fieldptr+', with value: '+collection[0].getAttribute('id'));
			
			//fieldptr.selectedValue = collection[0].getAttribute('id');

			if(getCookie("stay") == null) { //if a user already selected a 'stay-duration' (set in a cookie), the park's default-stay will NOT be set.
			   jQuery("#avstay").val(collection[0].getAttribute('id'));
		    }
		}
		
		// checks if collection contains NO items
		if (collection.length == 0 && mustPopulate)	{
			//  display message and disable option-box
			fieldptr.options[dropdowncnt++] = new Option( "  ","");
			disableOption = true;
		}
		// checks if collection contains only one item 
		else if (collection.length == 1 && fieldptr != null && mustPopulate) {
			// check if this TAG was selected by user
			if (collection[0].getAttribute('selected') == null)
			  selectedID = ''
			else
			  selectedID = collection[0].getAttribute('id');

			// then display only THE ONE item   
			if (selectedID == collection[0].getAttribute('id')) { // this option was selected by User (so user may change it again)
				if (collection[0].getAttribute('val') == null) // use id if val is not supplied
					fieldptr.options[dropdowncnt] = new Option( collection[0].getAttribute('id'),collection[0].getAttribute('id'));
				else
					fieldptr.options[dropdowncnt] = new Option( collection[0].getAttribute('val'),collection[0].getAttribute('id'));
			}
			else { // this option was selected by this routine because theres only one item found. (User may NOT change it)
				if (collection[0].getAttribute('val') == null) // use id if val is not supplied
				  fieldptr.options[dropdowncnt] = new Option( collection[0].getAttribute('id'),'');
				else
				  fieldptr.options[dropdowncnt] = new Option( collection[0].getAttribute('val'),'');
				//disableOption = true;
			}
			fieldptr.selectedIndex = dropdowncnt;
		}
		else if(mustPopulate) { 
			var wasSelected=false;
			var canPopulate=true;
			for(cnt=0; cnt < collection.length; cnt++) 
			{
				if ((thema=='wintersport') && (tagname == 'ym')) 
				{
					switch (collection[cnt].getAttribute('id'))
					{
						case "201111":
						case "201112":
						case "201201":
						case "201202":
						case "201203":
						case "201204":
						case "201211":
						case "201212":
						case "201301":
						case "201302":
						case "201303":
						case "201304":
							canPopulate=true;
							break;
						default:
							canPopulate=false;
							break;
					}
				}
				if (canPopulate && fieldptr != null)
				{   
					// create an option with values from xmlDoc
					if (collection[cnt].getAttribute('val') == null) // use id if val is not supplied
						fieldptr.options[dropdowncnt] = new Option(collection[cnt].getAttribute('id'), collection[cnt].getAttribute('id'));
					else
						fieldptr.options[dropdowncnt] = new Option(collection[cnt].getAttribute('val'),collection[cnt].getAttribute('id'));
					
					
					if(fieldptr.options[dropdowncnt].text.indexOf("[country]")>-1) 
					{
					    fieldptr.options[dropdowncnt].className = "selectBoxCountry";
					    fieldptr.options[dropdowncnt].text = fieldptr.options[dropdowncnt].text.replace("[country]","");
					}
					if(fieldptr.options[dropdowncnt].text.indexOf("[space]")>-1) 
					{
					    fieldptr.options[dropdowncnt].text = fieldptr.options[dropdowncnt].text.replace("[space]","\u00A0\u00A0\u00A0\u00A0");
					}
				
					// checks if this option was selected by the user
 					if (collection[cnt].getAttribute('selected') != null) {
						fieldptr.selectedIndex = dropdowncnt;  // select that option again
						wasSelected = true;
 					}
					dropdowncnt++;
				}
	   	}
	   	if (!wasSelected) {
	   		if (tagname == 'ym')
	   			needToRepopulate = true;
	   			
	   		if (fieldptr != null)
	   			fieldptr.selectedIndex = 0;
	   	}
		}
		if(fieldptr != null)
			fieldptr.disabled = disableOption;
	}

	function parseAll()	{
		if (!isLoadingXML)
			return;
		clearTimeout(theTimer);
		var theMovie = document.getElementById('theloadingmovie');
		var thePanel = document.getElementById('availabilityform');
		var theCNDMovie = document.getElementById('bookNowLoading');
		var theCNDPanel = document.getElementById('bookNowFieldset');
		if(thePanel)
			thePanel.style.display = 'block';
		if(theMovie)
			theMovie.style.display = 'none';
		if(theCNDPanel)
			theCNDPanel.style.display = 'block';
		if(theCNDMovie)
			theCNDMovie.style.display = 'none';
			
		if (thema=='campings') 
		{
		    populateXMLSelect(document.getElementById('avprk'),'prk');
		    populateXMLSelect(document.getElementById('avstaytype'),'staytype');
		}
		else
		{
    		populateXMLSelect(document.getElementById('avnum'),'num');
		}
        populateXMLSelect(document.getElementById('avstay'),'stay');
		populateXMLSelect(document.getElementById('avym'),'ym');
		populateXMLSelect(document.getElementById('avdd'),'dd');
		populateXMLSelect(document.getElementById('avstay'),'ds');
		isLoadingXML = false;
		if (needToRepopulate) {
			needToRepopulate = false;
			reloadXMLym();
		}
	}

	function appendQryString(queryString, strParamlabel, strParamvalue, toCookie) {
		// test of deze ook opgeslagen moet worden in de cookie
		if (toCookie==true)
			setCookie(strParamlabel,strParamvalue);

		// return directly if parameters are null
		if ((strParamlabel == null) || (strParamvalue == null))
		  return(queryString);
		// this function builds a URL querystring 
		if (strParamlabel.length > 0) { // only append label when label is valid
			if (strParamvalue.length > 0) { // only append label + value when filled with a value

				queryString = queryString.trim(); // remove trailing and leading spaces
				if (queryString.length == 0)
					var strDivider = '?'; // first parameter
				else
					var strDivider = '&'; // next parameters

				// voordat er geURLencoded wordt eerst +coderen
  				var tmpstrParamvalue = escape(strParamvalue);
				while (tmpstrParamvalue.indexOf('+') > -1) {
				  tmpstrParamvalue = tmpstrParamvalue.replace('+', '%2B');
				}
				
				queryString = queryString + strDivider + escape(strParamlabel) + '=' + tmpstrParamvalue
			}
		}
		return(queryString);
	}

	function getSelectedValue(optionPtr) {
		if (optionPtr == null)
			return('');
		return optionPtr.options[optionPtr.selectedIndex].value;
	}

  function defineQryString(ignoretag) {
	var qryStr = '';
	qryStr = appendQryString(qryStr, 'cnt', cntCode, false);
	qryStr = appendQryString(qryStr, 'taalcode', taalcode, false);
	
	if (ignoretag == 'isParkselector')
	{
	    if(getCookie("stay") != null)
	        qryStr = appendQryString(qryStr, 'stay', getCookie("stay"), false);
	    else if(defaultStay != '')
	        qryStr = appendQryString(qryStr, 'stay', defaultStay, false);
    }
    else
    {
        qryStr = appendQryString(qryStr, 'stay', getSelectedValue(document.getElementById('avstay')), true);
    }
	
    //qryStr = appendQryString(qryStr, 'stay', getSelectedValue(document.getElementById('avstay')), true);
	qryStr = appendQryString(qryStr, 'ym', getSelectedValue(document.getElementById('avym')), true);
    if (thema=='campings') 
    {
        qryStr = appendQryString(qryStr, 'prk', getSelectedValue(document.getElementById('avprk')), true);
        qryStr = appendQryString(qryStr, 'staytype', getSelectedValue(document.getElementById('avstaytype')), true);
    } 
    else
    {
    	qryStr = appendQryString(qryStr, 'prk', prkCode, false);
       	qryStr = appendQryString(qryStr, 'num', getSelectedValue(document.getElementById('avnum')), true);
    }
	if (ignoretag!='dd')
		qryStr = appendQryString(qryStr, 'dd', getSelectedValue(document.getElementById('avdd')), true);
	else
		setCookie("dd","");
	if (thema=='wintersport')
		qryStr = appendQryString(qryStr, 'thema', 'wintersport', false);
	else if (thema=='campings')
		qryStr = appendQryString(qryStr, 'thema', 'campings', false);
    //alert(qryStr);
	window.status = qryStr;
	return(qryStr);
  }

	function reloadXML() {
		var qryStr = defineQryString();
		loadXML(AvailabilityPanelLocation+qryStr);
	}
	
	function reloadXMLTour() {
		var qryStr = defineQryString();
		loadXML(AvailabilityPanelLocation+qryStr+'&touroperator=true');
	}
	
	function reloadXMLparkselector() {
		var qryStr = defineQryString('isParkselector');
		loadXML(AvailabilityPanelLocation+qryStr);
	}
	
	function reloadXMLym() {
		var qryStr = defineQryString('dd');
		loadXML(AvailabilityPanelLocation+qryStr);
	}

	function reloadXMLymTour() {
		var qryStr = defineQryString('dd');
		loadXML(AvailabilityPanelLocation+qryStr+'&touroperator=true');
	}
	
	function reloadXMLnum() {
		var qryStr = defineQryString('num');
		loadXML(AvailabilityPanelLocation+qryStr);
	}
	
	function reloadXMLnumTour() {
		var qryStr = defineQryString('num');
		loadXML(AvailabilityPanelLocation+qryStr+'&touroperator=true');
	}
	
	function makeInitQRY(sCnt, sPrk, theThema, theTaalcode) {
		//alert('makeInitQRY('+sCnt+','+sPrk+','+theThema+','+theTaalcode+')');
		cntCode = sCnt;
		prkCode = sPrk;
		thema = theThema;
		taalcode = theTaalcode;

		var qryStr='';
		qryStr = appendQryString(qryStr, 'cnt', cntCode, false);
		qryStr = appendQryString(qryStr, 'taalcode', taalcode, false);

		// read from cookie
	    if (getCookie("stay") != null)
		    qryStr = appendQryString(qryStr, 'stay', getCookie("stay"), false);
	    else
        {
    	    if (thema=='campings')
    	    {
    			// number of nights default setting, requested by John Huizer (20090716)
    		    qryStr = appendQryString(qryStr, 'stay', '7', false);
    	    }else{
    		    qryStr = appendQryString(qryStr, 'stay', 'WE', false);
    		}
        }
        if (thema=='campings')
        {
    		qryStr = appendQryString(qryStr, 'prk', getCookie("prk"), false);
		    if (getCookie("staytype") != null)
			    qryStr = appendQryString(qryStr, 'staytype', getCookie("staytype"), false);
		    else
			    qryStr = appendQryString(qryStr, 'staytype', 'C', false);
	    }
        if (thema!='campings')
        {
    		qryStr = appendQryString(qryStr, 'prk', prkCode, false);
		    if (getCookie("num") != null)
			    qryStr = appendQryString(qryStr, 'num', getCookie("num"), false);
        }
		if (getCookie("ym") != null)
		{
			var theym = getCookie("ym");
			if (thema=='wintersport')
			{
				// voor wintersport beginnen met dec-2006
				switch (theym)
				{
						case "201111":
						case "201112":
						case "201201":
						case "201202":
						case "201203":
						case "201204":
						case "201211":
						case "201212":
						case "201301":
						case "201302":
						case "201303":
						case "201304":
						break;
					default:
						theym = "201011";
						break;
				}
			}
			qryStr = appendQryString(qryStr, 'ym', theym, false);
		}
		else
		{
			if (thema=='wintersport')
				// voor wintersport beginnen met dec-2006
				qryStr = appendQryString(qryStr, 'ym', '201011', false);
		}
		if (thema=='wintersport')
			qryStr = appendQryString(qryStr, 'thema', 'wintersport', false);
		else if (thema=='campings')
			qryStr = appendQryString(qryStr, 'thema', 'campings', false);
		
		if (getCookie("dd") != null)
			qryStr = appendQryString(qryStr, 'dd', getCookie("dd"), false);
	  return(qryStr);
	}


	function searchAvailability(qryString) {	
		if(!document.getElementById) {
			// see documentation at http://www.mozilla.org/docs/web-developer/faq.html
  			status.write('Availability E000');
			return;
		}
		if(is_mac) 
		{
			if (is_ie) 
			{	
				if (firstTimeAlert != true)
				{
					firstTimeAlert = true;
		  			alert('Please use one of the following browsers:\nSafari 1.2 or higher\nNetscape 7\nFirefox\nMozilla 1.0 or higher');
		  		}
				return;
			}
		}
		loadXML(AvailabilityPanelLocation+qryString);
	}

	function searchAvailabilityTour(qryString) {	
		if(!document.getElementById) {
			// see documentation at http://www.mozilla.org/docs/web-developer/faq.html
  			status.write('Availability E000');
			return;
		}
		if(is_mac) 
		{
			if (is_ie) 
			{	
				if (firstTimeAlert != true)
				{
					firstTimeAlert = true;
		  			alert('Please use one of the following browsers:\nSafari 1.2 or higher\nNetscape 7\nFirefox\nMozilla 1.0 or higher');
		  		}
				return;
			}
		}
		loadXML(AvailabilityPanelLocation+qryString + '&touroperator=true');
	}
	
function openLookAndBook(sitestatname, sitestatprefix, isLocalhost)
{
    if (thema=='campings') 
    {
        cntCode = getSelectedValue(document.getElementById('avprk'));
        if (cntCode.length == 5)
        {
            prkCode = getSelectedValue(document.getElementById('avprk'));
            prkCode = prkCode.substring(2,5);
        }
        cntCode = cntCode.substring(0,2);
    }
	//alert('parkCode is not empty: '+ prkCode);
	var qryStr = '';
	var selNum = getSelectedValue(document.getElementById('avnum'));
	if (selNum == '') selNum='4';
	var selStay = getSelectedValue(document.getElementById('avstay'));
	var selStayType = getSelectedValue(document.getElementById('avstaytype'));
	if (selStayType =='T') selStayType='C';
	var selDate = getSelectedValue(document.getElementById('avym')) + getSelectedValue(document.getElementById('avdd'));
	if (prkCode == '') {
		//qryStr = appendQryString('ingang=availability', 'vk_land', cntCode, false);
		qryStr = appendQryString(qryStr, 'pre_land', cntCode, false);
		if (thema != 'campings' && typeof regionCode != 'undefined') 
		{
		    qryStr = appendQryString(qryStr, 'pre_regio', regionCode, false);
		}
		
		qryStr = appendQryString(qryStr, 'boekditpark', prkCode, false);
        if (thema=='campings') 
        {
    		qryStr = appendQryString(qryStr, 'vk_nachten', selStay, false);
    	}else{
    		qryStr = appendQryString(qryStr, 'pre_duur', selStay, false);
    	}
		qryStr = appendQryString(qryStr, 'vk_bungalow_user', selNum , false);
        if (thema=='campings') qryStr = appendQryString(qryStr, 'pre_acc', selStayType , false);
		var YYYYMMDD = selDate;
		var YMMDD='';
		if (YYYYMMDD.length == 8)
		{
			YMMDD = YYYYMMDD.substring(3,8);
			qryStr = appendQryString(qryStr, 'vk_aankomst_YMMDD', YMMDD, false);
		}
		var clickouturl = '';

		if (isLocalhost != 'True' && sitestatname!=null && sitestatname!='')
	    {
	        if (sitestatprefix == null)
	            sitestatprefix = 'http://int.sitestat.com/landal/test/s?';

	        // sitestatname is bijvoorbeeld lgp.zoek.home
	        clickouturl = sitestatprefix + sitestatname + '&ns_type=clickout&ns_url=';
	    }
		openSps(qryStr, '', clickouturl);
	}
	else {
	    var thePrkUrl = '';

        if (prkCode.substring(0,4)=="url:")
        {
            thePrkUrl = prkCode.substring(4);
        }
        else
        {
		    // write the parameters to a cookie to be used in pricepanel
			setCookie('sel_parkcode',prkCode);
			setCookie('sel_stay',selStay);
			setCookie('sel_num',selNum);
			setCookie('sel_date',selDate);
	        setCookie('sel_staytype',selStayType);
	        setCookie('sel_nights',selStay);
	        //alert(selStay);
			thePrkUrl = '/template4.aspx?cp=parkcontentalgemeen1&menu=parken&mid=parkenalgemeen&contentcode=algemeen&parkcode=' + prkCode; // + '&sel_num=' + selNum + '&sel_stay=' + selStay + '&sel_date=' + selDate;
		}
		document.location.href = thePrkUrl;
	}
	
}


function openLookAndBookWintersport()
{
	var qryStr = '';
	var selNum = getSelectedValue(document.getElementById('avnum'));
	var selStay = getSelectedValue(document.getElementById('avstay'));
	var selDate = getSelectedValue(document.getElementById('avym')) + getSelectedValue(document.getElementById('avdd'));
	if (prkCode == '') {
		qryStr = appendQryString('ingang=availability', 'vk_land', cntCode, false);
		qryStr = appendQryString(qryStr, 'boekditpark', prkCode, false);
		qryStr = appendQryString(qryStr, 'pre_duur', selStay, false);
		qryStr = appendQryString(qryStr, 'vk_bungalow_user', selNum , false);
		
		var YYYYMMDD = selDate;
		var YMMDD='';
		if (YYYYMMDD.length == 8)
		{
			YMMDD = YYYYMMDD.substring(3,8);
			qryStr = appendQryString(qryStr, 'vk_aankomst_YMMDD', YMMDD, false);
		}
		openSps(qryStr);
	}
	else {
	    // write the parameters to a cookie to be used in pricepanel
	    setCookie('sel_parkcode',prkCode);
	    setCookie('sel_stay',selStay);
	    setCookie('sel_num',selNum);
	    setCookie('sel_date',selDate);
		document.location.href = '/template4.aspx?cp=parkcontentalgemeen1&menu=wintersportparken&mid=wintersportparkenalgemeen&contentcode=algemeen&parkcode=' + prkCode; //+ '&sel_num=' + selNum + '&sel_stay=' + selStay + '&sel_date=' + selDate;
	}
	
}

/**
 * Sets a Cookie with the given name and value.
 * name       Name of the cookie
 * value      Value of the cookie
 * [expires]  Expiration date of the cookie (default: end of current session)
 * [path]     Path where the cookie is valid (default: path of calling document)
 * [domain]   Domain where the cookie is valid
 *              (default: domain of calling document)
 * [secure]   Boolean value indicating if the cookie transmission requires a
 *              secure transmission
 */
function setCookie(name, value, expires, path, domain, secure)
{
    document.cookie= name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires.toGMTString() : "") +
        ((path) ? "; path=" + path : "; path=/") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
}

/**
 * Gets the value of the specified cookie.
 * name  Name of the desired cookie.
 * Returns a string containing value of specified cookie,
 *   or null if cookie does not exist.
 */
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;
    }
    return unescape(dc.substring(begin + prefix.length, end));
}

