// Common library functions
function obj(name)
{
	return document.getElementById(name);
}

function isNumeric(str) {

// Pull the regex out of the function and use test()
	//  instead of match() so that the regex is only
	//  compiled once, not on each call.
	var regExpr = /[^0-9]/;

    return !regExpr.test(str);
}

function URLDecode(psEncodeString) {
	
  // Create a regular expression to search all +s in the string
  var lsRegExp = /\+/g;
  
  // Return the decoded string
  return unescape(String(psEncodeString).replace(lsRegExp, " "));
}

function updateCheckBox(xmlItem, htmlname, name)
{
	var checkboxField = obj(htmlname);		
	if (xmlItem.getElementsByTagName(name)[0].firstChild != null && xmlItem.getElementsByTagName(name)[0].firstChild.nodeValue == 1)
		checkboxField.checked = true;
	else 
		checkboxField.checked = false;

	return true;
}

function updateText(xmlItem, htmlname, name)
{
	var textField = obj(htmlname);		
	
	textField.value = "";
	if (xmlItem.getElementsByTagName(name)[0].firstChild != null) {
		
		// Need to check to see if these are equal in case of text overflow for big fields
		if (xmlItem.getElementsByTagName(name)[0].firstChild.nodeValue != xmlItem.getElementsByTagName(name)[0].lastChild.nodeValue) {
			
			for (i = 0; i < xmlItem.getElementsByTagName(name)[0].childNodes.length; i++) {
				textField.value += URLDecode(xmlItem.getElementsByTagName(name)[0].childNodes[i].nodeValue);
			}
		}
		else
			textField.value = URLDecode(xmlItem.getElementsByTagName(name)[0].firstChild.nodeValue);							
	}		
	
	return true;
}

function updateEmptyText(xmlItem, htmlname, name)
{
	var textField = obj(htmlname);		
	
	textField.value = "";
	if (xmlItem.getElementsByTagName(name)[0].firstChild != null) {
		
		if (URLDecode(xmlItem.getElementsByTagName(name)[0].firstChild.nodeValue) != 0)
			textField.value = URLDecode(xmlItem.getElementsByTagName(name)[0].firstChild.nodeValue);							
	}		
	
	return true;
}

function updateDate(xmlItem, htmlname, name)
{
	var textField = obj(htmlname);		
	
	textField.value = "";
	if (xmlItem.getElementsByTagName(name)[0].firstChild != null) {
	
		// Fill in date except for default date
		if (URLDecode(xmlItem.getElementsByTagName(name)[0].firstChild.nodeValue) != '1900-01-01')
			textField.value = URLDecode(xmlItem.getElementsByTagName(name)[0].firstChild.nodeValue);							
	}		

	return true;
}

function updateDropDown(xmlItem, htmlname, name)
{
	var list = obj(htmlname);		
	
	list[0].selected = true;
	for (i = 0; i < list.length; i++) {
		if (xmlItem.getElementsByTagName(name)[0].firstChild != null && 
				list[i].value == URLDecode(xmlItem.getElementsByTagName(name)[0].firstChild.nodeValue)) {
			list[i].selected = true;
		}
	}
			
	return true;
}

function updateRadioButton(xmlItem, htmlname, name)
{

	var radioButton = document.getElementsByName(htmlname)
	if(!radioButton)
		return;
	
	var radioLength = radioButton.length;
	if(radioLength == undefined) {
		radioButton.checked = (radioButton.value == URLDecode(xmlItem.getElementsByTagName(name)[0].firstChild.nodeValue));
		return true;
	}
	
	for(var i = 0; i < radioLength; i++) {
		radioButton[i].checked = false;
		if(radioButton[i].value == URLDecode(xmlItem.getElementsByTagName(name)[0].firstChild.nodeValue)) {
			radioButton[i].checked = true;
		}
	}

	return true;
}

function updateMultiList(xmlItem, htmlname, name)
{
	var list = obj(htmlname);		
	
	// Setup default list
	for (i = 0; i < list.length; i++) {
		if (i == 0)
			list[0].selected = true;
		else
			list[i].selected = false;
	}
	
	// Parse out item list
	if (xmlItem.getElementsByTagName(name)[0].firstChild != null) {
	
		var itemList = URLDecode(xmlItem.getElementsByTagName(name)[0].firstChild.nodeValue);
		var itemArray = itemList.split("|");
		
		// Highlight each one in drop down list
		for (i = 0; i < itemArray.length; i++) {
	
			for (j = 0; j < list.length; j++) {
				if (list[j].value == itemArray[i]) {
					list[j].selected = true;
					
					// Since we've found an entry deselected the "Select Restaurant" entry
					list[0].selected = false;
				}
			}
		
		}
	
	}
			
	return true;
}

function updateMousePtr(state)
{
	document.body.style.cursor = state;
	return true;
}

function setMainNav(selection, setting)
{
	if (setting == 'on') {
		selection.className='selectedSection';
		selection.style.textDecoration = 'underline';
		updateMousePtr('pointer');
	}
	else {
		selection.className='unselectedSection';
		selection.style.textDecoration = 'none';
		updateMousePtr('default');
	}
	
	return true;
}

function setTab(tab)
{
	var resortsWidget = obj("resortsWidget"); 
	var resorts = obj("Resorts"); 
	var destWidget = obj("destWidget"); 
	var destinations = obj("Destinations"); 
	var intWidget = obj("intWidget"); 
	var interests = obj("Interests"); 
	var ageWidget = obj("ageWidget"); 
	var age = obj("Age"); 

	switch(tab) {
		case 1:
			resortsWidget.style.display = 'block';
			resorts.className = 'tabOn';
			destWidget.style.display = 'none';
			destinations.className = 'tabOff';
			intWidget.style.display = 'none';
			interests.className = 'tabOff';
			ageWidget.style.display = 'none';
			age.className = 'tabOff';
			break;
		case 2:
			resortsWidget.style.display = 'none';
			resorts.className = 'tabOff';
			destWidget.style.display = 'block';
			destinations.className = 'tabOn';
			intWidget.style.display = 'none';
			interests.className = 'tabOff';
			ageWidget.style.display = 'none';
			age.className = 'tabOff';
			break;
		case 3:
			resortsWidget.style.display = 'none';
			resorts.className = 'tabOff';
			destWidget.style.display = 'none';
			destinations.className = 'tabOff';
			intWidget.style.display = 'block';
			interests.className = 'tabOn';
			ageWidget.style.display = 'none';
			age.className = 'tabOff';
			break;
		case 4:
			resortsWidget.style.display = 'none';
			resorts.className = 'tabOff';
			destWidget.style.display = 'none';
			destinations.className = 'tabOff';
			intWidget.style.display = 'none';
			interests.className = 'tabOff';
			ageWidget.style.display = 'block';
			age.className = 'tabOn'; 
			break;
		default:
			break;
		
	}
}

function checkIntSearchInput()
{
	// Check if at least one radio button is selected
	var selection = document.intSearch.intAttribute;
	for (i = 0; i < selection.length; i++){
		if (selection[i].checked == true){

			window.location = "/family-resorts/interest-hotel.php?intAttribute=" + selection[i].value;
			return true;
		}
	}

	// No option was selected so print out error
	alert("Please select at least one interest to search for.");
	return false;
}

function checkAgeSearchInput()
{
	// Check if at least one check button is selected
	var selected = false;
	var url = "/family-resorts/ages-hotel.php";
	
	if (document.ageSearch.ages0to2.checked) {
		url = url + "?ages0to2=1";
		selected = true;
	}
	
	if (document.ageSearch.ages3to6.checked) {
		
		if (selected)
			url = url + "&ages3to6=1";
		else {
			url = url + "?ages3to6=1";
			selected = true;
		}
	}
	
	if (document.ageSearch.ages7to9.checked) {
		if (selected)
			url = url + "&ages7to9=1";
		else {
			url = url + "?ages7to9=1";
			selected = true;
		}
	}
	
	if (document.ageSearch.ages10to12.checked) {
		if (selected)
			url = url + "&ages10to12=1";
		else {
			url = url + "?ages10to12=1";
			selected = true;
		}
	}
	
	if (document.ageSearch.ages13to15.checked) {
		if (selected)
			url = url + "&ages13to15=1";
		else {
			url = url + "?ages13to15=1";
			selected = true;
		}
	}

	// No option was selected so print out error
	if (!selected) {
		alert("Please select at least one age group to search for.");
		return false;
	}
	else 
		window.location = url;
		
	return true;
}

/**
 * DHTML date validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */
// Declaring valid date character, minimum year and maximum year
var dtCh= "/";
var minYear=1900;
var maxYear=2100;

function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this;
}

function checkDate(dtStr){
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strMonth=dtStr.substring(0,pos1)
	var strDay=dtStr.substring(pos1+1,pos2)
	var strYear=dtStr.substring(pos2+1)
	strYr=strYear
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)
	if (pos1==-1 || pos2==-1){
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		return false
	}
return true;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function echeck(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    return false
		 }

 		 return true					
}

function displayPopUnder(url, width, height)
{
	var cpu_win = window.open("", "NewsletterWindow", "toolbar=0,location=0,directories=0,status=0,menubar=0,resizable=0,copyhistory=0,scrollbars=0,width="+width+",height="+height+",left=100,top=100");
	if(cpu_win) {
    	cpu_win.blur();
    	window.focus();
		cpu_win.location = url;
    	cpu_win.opener = self;
	}
	
	
	return true;
}

function nl2br(text){
	var re_nlchar = "";
	text = escape(text);
    if(text.indexOf('%0D%0A') > -1) {
		re_nlchar = /%0D%0A/g ;
	} else if(text.indexOf('%0A') > -1) {
      re_nlchar = /%0A/g ;
    } else if(text.indexOf('%0D') > -1) {
		re_nlchar = /%0D/g ;
	}
	
	return unescape( text.replace(re_nlchar,'<br />') );
}

function get_html_translation_table(table, quote_style) {
    // http://kevin.vanzonneveld.net
    // +   original by: Philip Peterson
    // +    revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: noname
    // +   bugfixed by: Alex
    // +   bugfixed by: Marco
    // +   bugfixed by: madipta
    // +   improved by: KELAN
    // +   improved by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Brett Zamir (http://brett-zamir.me)
    // +      input by: Frank Forte
    // +   bugfixed by: T.Wild
    // +      input by: Ratheous
    // %          note: It has been decided that we're not going to add global
    // %          note: dependencies to php.js, meaning the constants are not
    // %          note: real constants, but strings instead. Integers are also supported if someone
    // %          note: chooses to create the constants themselves.
    // *     example 1: get_html_translation_table('HTML_SPECIALCHARS');
    // *     returns 1: {'"': '&quot;', '&': '&amp;', '<': '&lt;', '>': '&gt;'}
    
    var entities = {}, hash_map = {}, decimal = 0, symbol = '';
    var constMappingTable = {}, constMappingQuoteStyle = {};
    var useTable = {}, useQuoteStyle = {};
    
    // Translate arguments
    constMappingTable[0]      = 'HTML_SPECIALCHARS';
    constMappingTable[1]      = 'HTML_ENTITIES';
    constMappingQuoteStyle[0] = 'ENT_NOQUOTES';
    constMappingQuoteStyle[2] = 'ENT_COMPAT';
    constMappingQuoteStyle[3] = 'ENT_QUOTES';
 
    useTable       = !isNaN(table) ? constMappingTable[table] : table ? table.toUpperCase() : 'HTML_SPECIALCHARS';
    useQuoteStyle = !isNaN(quote_style) ? constMappingQuoteStyle[quote_style] : quote_style ? quote_style.toUpperCase() : 'ENT_COMPAT';
 
    if (useTable !== 'HTML_SPECIALCHARS' && useTable !== 'HTML_ENTITIES') {
        throw new Error("Table: "+useTable+' not supported');
        // return false;
    }
 
    entities['38'] = '&amp;';
    if (useTable === 'HTML_ENTITIES') {
        entities['160'] = '&nbsp;';
        entities['161'] = '&iexcl;';
        entities['162'] = '&cent;';
        entities['163'] = '&pound;';
        entities['164'] = '&curren;';
        entities['165'] = '&yen;';
        entities['166'] = '&brvbar;';
        entities['167'] = '&sect;';
        entities['168'] = '&uml;';
        entities['169'] = '&copy;';
        entities['170'] = '&ordf;';
        entities['171'] = '&laquo;';
        entities['172'] = '&not;';
        entities['173'] = '&shy;';
        entities['174'] = '&reg;';
        entities['175'] = '&macr;';
        entities['176'] = '&deg;';
        entities['177'] = '&plusmn;';
        entities['178'] = '&sup2;';
        entities['179'] = '&sup3;';
        entities['180'] = '&acute;';
        entities['181'] = '&micro;';
        entities['182'] = '&para;';
        entities['183'] = '&middot;';
        entities['184'] = '&cedil;';
        entities['185'] = '&sup1;';
        entities['186'] = '&ordm;';
        entities['187'] = '&raquo;';
        entities['188'] = '&frac14;';
        entities['189'] = '&frac12;';
        entities['190'] = '&frac34;';
        entities['191'] = '&iquest;';
        entities['192'] = '&Agrave;';
        entities['193'] = '&Aacute;';
        entities['194'] = '&Acirc;';
        entities['195'] = '&Atilde;';
        entities['196'] = '&Auml;';
        entities['197'] = '&Aring;';
        entities['198'] = '&AElig;';
        entities['199'] = '&Ccedil;';
        entities['200'] = '&Egrave;';
        entities['201'] = '&Eacute;';
        entities['202'] = '&Ecirc;';
        entities['203'] = '&Euml;';
        entities['204'] = '&Igrave;';
        entities['205'] = '&Iacute;';
        entities['206'] = '&Icirc;';
        entities['207'] = '&Iuml;';
        entities['208'] = '&ETH;';
        entities['209'] = '&Ntilde;';
        entities['210'] = '&Ograve;';
        entities['211'] = '&Oacute;';
        entities['212'] = '&Ocirc;';
        entities['213'] = '&Otilde;';
        entities['214'] = '&Ouml;';
        entities['215'] = '&times;';
        entities['216'] = '&Oslash;';
        entities['217'] = '&Ugrave;';
        entities['218'] = '&Uacute;';
        entities['219'] = '&Ucirc;';
        entities['220'] = '&Uuml;';
        entities['221'] = '&Yacute;';
        entities['222'] = '&THORN;';
        entities['223'] = '&szlig;';
        entities['224'] = '&agrave;';
        entities['225'] = '&aacute;';
        entities['226'] = '&acirc;';
        entities['227'] = '&atilde;';
        entities['228'] = '&auml;';
        entities['229'] = '&aring;';
        entities['230'] = '&aelig;';
        entities['231'] = '&ccedil;';
        entities['232'] = '&egrave;';
        entities['233'] = '&eacute;';
        entities['234'] = '&ecirc;';
        entities['235'] = '&euml;';
        entities['236'] = '&igrave;';
        entities['237'] = '&iacute;';
        entities['238'] = '&icirc;';
        entities['239'] = '&iuml;';
        entities['240'] = '&eth;';
        entities['241'] = '&ntilde;';
        entities['242'] = '&ograve;';
        entities['243'] = '&oacute;';
        entities['244'] = '&ocirc;';
        entities['245'] = '&otilde;';
        entities['246'] = '&ouml;';
        entities['247'] = '&divide;';
        entities['248'] = '&oslash;';
        entities['249'] = '&ugrave;';
        entities['250'] = '&uacute;';
        entities['251'] = '&ucirc;';
        entities['252'] = '&uuml;';
        entities['253'] = '&yacute;';
        entities['254'] = '&thorn;';
        entities['255'] = '&yuml;';
    }
 
    if (useQuoteStyle !== 'ENT_NOQUOTES') {
        entities['34'] = '&quot;';
    }
    if (useQuoteStyle === 'ENT_QUOTES') {
        entities['39'] = '&#39;';
    }
    entities['60'] = '&lt;';
    entities['62'] = '&gt;';
 
 
    // ascii decimals to real symbols
    for (decimal in entities) {
        symbol = String.fromCharCode(decimal);
        hash_map[symbol] = entities[decimal];
    }
    
    return hash_map;
}

function htmlentities (string, quote_style) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +    revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: nobbler
    // +    tweaked by: Jack
    // +   bugfixed by: Onno Marsman
    // +    revised by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +    bugfixed by: Brett Zamir (http://brett-zamir.me)
    // +      input by: Ratheous
    // -    depends on: get_html_translation_table
    // *     example 1: htmlentities('Kevin & van Zonneveld');
    // *     returns 1: 'Kevin &amp; van Zonneveld'
    // *     example 2: htmlentities("foo'bar","ENT_QUOTES");
    // *     returns 2: 'foo&#039;bar'
 
    var hash_map = {}, symbol = '', tmp_str = '', entity = '';
    tmp_str = string.toString();
    
    if (false === (hash_map = this.get_html_translation_table('HTML_ENTITIES', quote_style))) {
        return false;
    }
    hash_map["'"] = '&#039;';
    for (symbol in hash_map) {
        entity = hash_map[symbol];
        tmp_str = tmp_str.split(symbol).join(entity);
    }
    
    return tmp_str;
}

var isIE = (navigator.userAgent.indexOf('MSIE') != -1);

function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

function getSelectedRadio(buttonGroup) {
   // returns the array number of the selected radio button or -1 if no button is selected
   if (buttonGroup[0]) { // if the button group is an array (one button is not an array)
      for (var i=0; i<buttonGroup.length; i++) {
         if (buttonGroup[i].checked) {
            return i
         }
      }
   } else {
      if (buttonGroup.checked) { return 0; } // if the one button is checked, return zero
   }
   // if we get to this point, no radio button is selected
   return -1;
} // Ends the "getSelectedRadio" function

function getSelectedRadioValue(buttonGroup) {
   // returns the value of the selected radio button or "" if no button is selected
   var i = getSelectedRadio(buttonGroup);
   if (i == -1) {
      return "";
   } else {
      if (buttonGroup[i]) { // Make sure the button group is an array (not just one button)
         return buttonGroup[i].value;
      } else { // The button group is just the one button, and it is checked
         return buttonGroup.value;
      }
   }
} // Ends the "getSelectedRadioValue" function

function setDivHeight(field, height)
{
	var el = obj("reviewCopy");
	if (height < el.scrollHeight)
		el.style.height = el.scrollHeight + "px";
	else
		el.style.height = height + "px";
		
	el.style.overflow = 'hidden';
		
	return true;
}

function gotoRegionHotel()
{
	// Call ajax function to grab new state list based on country
	var regions = obj("regions");
	var params = "hotelRegionID=" + escape(regions.value);
	
	var url = "/ajax/ajx_geturl.php";
	xmlHttp = GetXmlHttpObject(sendToURL);
	xmlHttp.open("POST", url , true);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.send(params);

	return true;
}

function gotoDestHotel()
{
	// Call ajax function to grab new state list based on country
	var dests = obj("dests");
	var params = "hotelDestID=" + escape(dests.value);
	
	var url = "/ajax/ajx_geturl.php";
	xmlHttp = GetXmlHttpObject(sendToURL);
	xmlHttp.open("POST", url , true);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.send(params);

	return true;
}

function gotoHotel()
{
	// Call ajax function to grab new state list based on country
	var hotels = obj("hotels");
	var params = "hotelID=" + escape(hotels.value);
	
	var url = "/ajax/ajx_geturl.php";
	xmlHttp = GetXmlHttpObject(sendToURL);
	xmlHttp.open("POST", url , true);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.send(params);

	return true;
}

function gotoDestRegion()
{
	// Call ajax function to grab new state list based on country
	var regionsDest = obj("regionsDest");
	var params = "destRegionID=" + escape(regionsDest.value);
	
	var url = "/ajax/ajx_geturl.php";
	xmlHttp = GetXmlHttpObject(sendToURL);
	xmlHttp.open("POST", url , true);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.send(params);

	return true;
}

function gotoDest()
{
	// Call ajax function to grab new state list based on country
	var destination = obj("destination");
	var params = "destID=" + escape(destination.value);
	
	var url = "/ajax/ajx_geturl.php";
	xmlHttp = GetXmlHttpObject(sendToURL);
	xmlHttp.open("POST", url , true);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.send(params);

	return true;
}

function sendToURL()
{
	if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {

		if (xmlHttp.status == 200) {

			// Get xml document
			var urlList = xmlHttp.responseXML.documentElement;
			var url = URLDecode(urlList.childNodes[0].nodeValue);
			
			// Redirect to the proper region page
			window.location = url;		
		}
		else {
                alert("ERROR: Could not retrieve url - error=" + xmlHttp.status + ": " + xmlHttp.statusText);
		}
	}
}

function displayPopup(url, width, height) 
{
 var left   = (screen.width  - width)/2;
 var top    = (screen.height - height)/2;
 var params = 'width='+width+', height='+height;
 params += ', top='+top+', left='+left;
 params += ', directories=no';
 params += ', location=no';
 params += ', menubar=no';
 params += ', resizable=no';
 params += ', scrollbars=no';
 params += ', status=no';
 params += ', toolbar=no';
 newwin=window.open(url,'windowname5', params);
 if (window.focus) {newwin.focus()}
 return false;
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}






