// JavaScript Document

var xmlHttp

function showBrowse(letter,start,order)
{
	
	letter = typeof(letter) != 'undefined' ? letter : document.getElementById("letter_value").value;
	start = typeof(start) != 'undefined' ? start : document.getElementById("start_value").value;
	order = typeof(order) != 'undefined' ? order : document.getElementById("order_value").value;
	//alert("LETTER: "+letter+"\n START: "+start+"\n ORDER: "+order);
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	  {
	  alert ("Your browser does not support AJAX!");
	  return;
	  } 
	var url="includes/ajax/browse.php?letter="+letter+"&start="+start+"&order="+order;
	//alert(url);
	xmlHttp.onreadystatechange=browseHandler;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function browseHandler() 
{ 
	if (xmlHttp.readyState==4)
	{ 	
		var my_array = xmlHttp.responseText.split(":::");
		showdiv('home_select');
		document.getElementById('table_head').innerHTML='Browse <span class="purple_header_sub">By Destination</span>';
		document.getElementById('table_headliner').innerHTML="Select a Destination";
		document.getElementById("link").innerHTML= my_array[0];
		document.getElementById("wrapper").innerHTML= my_array[1];
		document.getElementById("alpha").innerHTML= my_array[2];
		document.getElementById("letter_value").value= my_array[3];
		document.getElementById("start_value").value= my_array[4];
		document.getElementById("order_value").value= my_array[5];
		//alert(my_array[5]);
	}
}


function showThemeBrowse(letter,start,order)
{
	//alert("LETTER: "+letter+" START: "+start+" ORDER: "+order);
	letter = typeof(letter) != 'undefined' ? letter : document.getElementById("letter_value").value;
	start = typeof(start) != 'undefined' ? start : document.getElementById("start_value").value;
	order = typeof(order) != 'undefined' ? order : document.getElementById("order_value").value;
	//alert("Letter:"+letter+"\nStart:"+start+"\nOrder:"+order);
	
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	  {
	  alert ("Your browser does not support AJAX!");
	  return;
	  } 
	var url="includes/ajax/browse_themes.php?letter="+letter+"&start="+start+"&order="+order;
	//alert(url);
	xmlHttp.onreadystatechange=browseThemeHandler;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function browseThemeHandler() 
{ 
	if (xmlHttp.readyState==4)
	{ 
		var my_array = xmlHttp.responseText.split(":::");
		//showdiv('home_select');
		document.getElementById('table_head').innerHTML='Browse <span class="purple_header_sub">By Trip Type</span>';
		document.getElementById('table_headliner').innerHTML="Select a Trip Type";
		document.getElementById("link").innerHTML= my_array[0];
		document.getElementById("wrapper").innerHTML= my_array[1];
		document.getElementById("alpha").innerHTML= my_array[2];
		document.getElementById("letter_value").value= my_array[3];
		document.getElementById("start_value").value= my_array[4];
		document.getElementById("order_value").value= my_array[5];
	}
}




function showThemes(parent)
{
	parent = typeof(parent) != 'undefined' ? parent : '';
	//alert("Letter:"+letter+"\nStart:"+start+"\nOrder:"+order);
	
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	  {
	  alert ("Your browser does not support AJAX!");
	  return;
	  } 
	var url="includes/ajax/browse_themes.php?parent="+parent;
	//alert(url);
	xmlHttp.onreadystatechange=themesHandler;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function themesHandler() 
{ 
	if (xmlHttp.readyState==4)
	{ 
		//alert(xmlHttp.responseText);
		var my_array = xmlHttp.responseText.split(":::");
		hidediv('home_select');
		document.getElementById('table_head').innerHTML='Browse <span class="purple_header_sub">By Trip Type</span>';
		if(my_array[2] == 'TRUE'){
			document.getElementById('table_headliner').innerHTML="Select From The List Below";
		}
		else{
			document.getElementById('table_headliner').innerHTML="Select A Trip Type Below";
		}
		document.getElementById("link").innerHTML= my_array[0];
		document.getElementById("wrapper").innerHTML= my_array[1];
		document.getElementById("alpha").innerHTML= '';
	}
}

function generateDestinations(data,list){
	data = typeof(data) != 'undefined' ? data : '';
	
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	  {
	  alert ("Your browser does not support AJAX!");
	  return;
	  } 
	var url="includes/ajax/generate_selects.php?code="+data+"&mode=1&list="+list;
	//alert(url);
	xmlHttp.onreadystatechange=destinationsHandler;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function destinationsHandler() 
{ 
	if (xmlHttp.readyState==4)
	{ 
		//alert(xmlHttp.responseText);
		document.getElementById('destination_wrapper').innerHTML=xmlHttp.responseText;
	}
}

function generateStates(data,state){
	data = typeof(data) != 'undefined' ? data : '';
	
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	  {
	  alert ("Your browser does not support AJAX!");
	  return;
	  } 
	var url="/includes/ajax/generate_selects.php?code="+data+"&mode="+state;
	//alert(url);
	xmlHttp.onreadystatechange=statesHandler;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function statesHandler() 
{ 
	if (xmlHttp.readyState==4)
	{ 
		//alert(xmlHttp.responseText);
		document.getElementById('state_holder').innerHTML=xmlHttp.responseText;
	}
}


function recoverPassword(type,field){
	
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	  {
	  alert ("Your browser does not support AJAX!");
	  return;
	  } 
	var url="includes/ajax/recover_password.php?t="+type+"&login="+field.value;
	//alert(url);
	xmlHttp.onreadystatechange=passwordHandler;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function passwordHandler() 
{ 
	if (xmlHttp.readyState==4)
	{ 
		//alert(xmlHttp.responseText);		
		if(xmlHttp.responseText.match("Error:")){
			var output =xmlHttp.responseText;
			document.getElementById('error_holder').innerHTML = output;
		}
		else{
			var pieces = xmlHttp.responseText.split(':');
			var output = '<table><tr><td><label>'+pieces[0]+'</label></td><td><input type="text" name="challenge_answer" class="agent_input"></td></tr>'
			output += '<tr><td colspan="2"><div class="orange_border_box">Please check your email, you have been sent a verification code.  Paste the code in the box below and hit the submit button to continue.</div></td></tr>';
			output += '<tr><td><label>Code from Email:</label></td><td><input type="text" name="email_code" class="agent_input"></td></tr></table>';
			output += '<input type="hidden" name="answer" value="'+pieces[1]+'"><input type="hidden" name="code" value="'+pieces[2]+'">'
			showdiv('submit_button');
			hidediv('recover_button');
			document.getElementById('select_holder').innerHTML = output;
		}
		
	}
}







function generateThemes(data, list){
	data = typeof(data) != 'undefined' ? data : '';
	
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	  {
	  alert ("Your browser does not support AJAX!");
	  return;
	  } 
	var url="includes/ajax/generate_selects.php?code="+data+"&mode=2&list="+list;
	//alert(url);
	xmlHttp.onreadystatechange=themesListHandler;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function themesListHandler() 
{ 
	if (xmlHttp.readyState==4)
	{ 
		//alert(xmlHttp.responseText);
		document.getElementById('themes_wrapper').innerHTML=xmlHttp.responseText;
	}
}


function updateCart(destinations,themes){
	destinations = typeof(destinations) != 'undefined' ? destinations : '';
	themes = typeof(themes) != 'undefined' ? themes : '';
	var spec = document.getElementById('has_specials');
	if( spec != null && spec.checked == true){
		var specials = 1;
	}
	else{
		var specials = 0;
	}
	
	var themlist = themes.split(',');
	var destlist = destinations.split(',');
	
	themes = '';
	destinations='';
	
	var used = Array();
	
	for(i = 0; i < themlist.length; i++){
		if(!in_array(themlist[i],used)){
			used.push(themlist[i]);
		}
	}
	
	themes = used.join(',');
	
	used = Array();
	
	for(i = 0; i < destlist.length; i++){
		if(!in_array(destlist[i],used)){
			used.push(destlist[i]);
		}
	}
	
	destinations = used.join(',');
	
	
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	  {
	  alert ("Your browser does not support AJAX!");
	  return;
	  } 
	var url="includes/ajax/update_cart.php?destinations="+destinations+"&themes="+themes+"&has_specials="+specials;
	//alert(url);
	//alert(url);
	xmlHttp.onreadystatechange=cartHandler;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function cartHandler() 
{ 
	if (xmlHttp.readyState==4)
	{ 
		//alert(xmlHttp.responseText);
		location.reload(true);
	}
}


function cartDelete(id){
	//alert(id);
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null){
	  alert ("Your browser does not support AJAX!");
	  return;
	} 
	var url="includes/ajax/delete_item.php?id="+id;
	//alert(url);
	//alert(url);
	xmlHttp.onreadystatechange=deleteHandler;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function deleteHandler() 
{ 
	if (xmlHttp.readyState==4)
	{ 
		//alert(xmlHttp.responseText);
		refreshCart();
	}
}





function refreshCart(){	
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	  {
	  alert ("Your browser does not support AJAX!");
	  return;
	  } 
	var url="includes/ajax/refresh_cart.php";
	//alert(url);
	//alert(url);
	xmlHttp.onreadystatechange=refreshHandler;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function refreshHandler() 
{ 
	if (xmlHttp.readyState==4)
	{ 
		alert("Cart Updated!");
		//alert(xmlHttp.responseText);
		document.getElementById('cart-wrapper').innerHTML=xmlHttp.responseText;
		checkIfFree();
	}
}


function checkCoupon(code){
	code = typeof(code) != 'undefined' ? code : document.getElementById('code').value;
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	  {
	  alert ("Your browser does not support AJAX!");
	  return;
	  } 
	var url="includes/ajax/apply_coupon.php?code="+code;
	//alert(url);
	//alert(url);
	xmlHttp.onreadystatechange=couponHandler;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function couponHandler() 
{ 
	var code1 = "Invalid Input";
	var code2 = "The coupon code is invalid or expired";
	if (xmlHttp.readyState==4)
	{ 
		//alert(xmlHttp.responseText);
		
		if(!xmlHttp.responseText.match(code1) && !xmlHttp.responseText.match(code2)){
			document.getElementById('coupon-wrapper').innerHTML="<div class='search_error'><p class='exclamation' style='padding-right:10px;'>Coupon Accepted - Details: <br><span style='font-size:14px; color: #f7941e;'>"+xmlHttp.responseText+"</span></p></div>";
			document.getElementById('coupon_code_link').style.display="none";
			refreshCart();
		}
		else{
			document.getElementById('coupon-wrapper').innerHTML= "<div class='search_error'>"+xmlHttp.responseText+"</div>";
		}
	}
}


function checkIfFree(){
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	  {
	  alert ("Your browser does not support AJAX!");
	  return;
	  } 
	var url="includes/ajax/check_free.php";
	//alert(url);
	//alert(url);
	xmlHttp.onreadystatechange=freeHandler;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);	
}


function freeHandler() 
{ 
	if (xmlHttp.readyState==4)
	{ 
		//alert(xmlHttp.responseText);
		if(xmlHttp.responseText == 'TRUE'){
			document.getElementById('secure_back').style.display="none";
			document.getElementById('real_submit').style.display="none";
			document.getElementById('dummy_submit').style.display="block";
		}
		else{
			document.getElementById('secure_back').style.display="block";
			document.getElementById('real_submit').style.display="block";
			document.getElementById('dummy_submit').style.display="none";
		}
	}
}


function updatePopularity(code){
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	  {
	  alert ("Your browser does not support AJAX!");
	  return;
	  } 
	var url="includes/ajax/update_popularity.php?id="+code;
	//alert(url);
	//alert(url);
	xmlHttp.onreadystatechange=popularityHandler;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function popularityHandler() 
{ 
	var code1 = "Invalid Input";
	var code2 = "The coupon code is invalid or expired";
	if (xmlHttp.readyState==4)
	{ 
		//alert(xmlHttp.responseText);
		/*document.getElementById('coupon-wrapper').innerHTML=xmlHttp.responseText;
		if(!xmlHttp.responseText.match(code1) && !xmlHttp.responseText.match(code2)){
			document.getElementById('coupon-form').style.display="none";
		}*/
	}
}

function checkData(mode){
	var password = document.getElementById('password').value;
	var conf = document.getElementById('confirm').value;
	var email = document.getElementById('email').value;
	var login = document.getElementById('login').value;
	
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	  {
	  alert ("Your browser does not support AJAX!");
	  return;
	  } 
	var url="includes/ajax/check_data.php?mode=agents&password="+password+"&confirm="+conf+"&email="+email+"&login="+login;
	
	//alert(url);
	//alert(url);
	xmlHttp.onreadystatechange=checkDataHandler;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function checkDataHandler() 
{ 
	var code1 = "Invalid Input";
	
	if (xmlHttp.readyState==4)
	{ 
		//alert(xmlHttp.responseText);
		if(!xmlHttp.responseText.match("ERROR")){
			isvalid = true;
			if(checkValid()){
				showdiv('page-2'); 
				hidediv('page-1');	
			}
		}
		else{
			isvalid = false;
			alert(xmlHttp.responseText);
		}
		
		//alert(xmlHttp.responseText);
		/*document.getElementById('coupon-wrapper').innerHTML=xmlHttp.responseText;
		if(!xmlHttp.responseText.match(code1) && !xmlHttp.responseText.match(code2)){
			document.getElementById('coupon-form').style.display="none";
		}*/
	}
}

function checkSpecialtyProfanity(text){
	//alert(text);
	//alert(text.value);
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	  {
	  alert ("Your browser does not support AJAX!");
	  return;
	  } 
	var url="includes/ajax/profanity_filter.php?message="+text.value;
	
	//alert(url);
	//alert(url);
	xmlHttp.onreadystatechange=specialtyProfanityHandler;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function specialtyProfanityHandler() 
{ 
	var code1 = "Invalid Input";
	
	if (xmlHttp.readyState==4)
	{ 
		//alert(xmlHttp.responseText);
		if(!xmlHttp.responseText.match("ERROR")){
			isvalid = true;
			if(checkValid()){
				document.getElementById('not_listed_value').value = xmlHttp.responseText;
				showdiv('page-3'); 
				hidediv('page-2');	
			}
		}
		else{
			isvalid = false;
			alert(xmlHttp.responseText);
		}
		
		//alert(xmlHttp.responseText);
		/*document.getElementById('coupon-wrapper').innerHTML=xmlHttp.responseText;
		if(!xmlHttp.responseText.match(code1) && !xmlHttp.responseText.match(code2)){
			document.getElementById('coupon-form').style.display="none";
		}*/
	}
}

function sendEmail(){
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	  {
	  alert ("Your browser does not support AJAX!");
	  return;
	  } 
	
	var url="includes/ajax/send_email.php";
	var	params = getFormValues();
	
	xmlHttp.open("POST", url, true);
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	
	xmlHttp.onreadystatechange = emailHandler;
	//alert(url);
	xmlHttp.send(params);	
	//xmlHttp.onreadystatechange=popularityHandler;
	//xmlHttp.open("GET",url,true);
	//xmlHttp.send(null);
}

function emailHandler() 
{ 
	var code1 = "Invalid Input";
	
	if (xmlHttp.readyState==4)
	{ 
		//alert(xmlHttp.responseText);
		if(!xmlHttp.responseText.match(code1)){
			document.getElementById('form_holder').innerHTML=xmlHttp.responseText;
		}
		else{
			document.getElementById('error').innerHTML=xmlHttp.responseText;
		}
		
		//alert(xmlHttp.responseText);
		/*document.getElementById('coupon-wrapper').innerHTML=xmlHttp.responseText;
		if(!xmlHttp.responseText.match(code1) && !xmlHttp.responseText.match(code2)){
			document.getElementById('coupon-form').style.display="none";
		}*/
	}
}






function rateAgent()
{
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	  {
	  alert ("Your browser does not support AJAX!");
	  return;
	  }
	var url = "includes/ajax/ratings.php";
	var params = getFormValues();
	
	xmlHttp.open("POST", url, true);
	
	//Send the proper header information along with the request
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	
	xmlHttp.onreadystatechange = function() {//Call a function when the state changes. redirect
		if(xmlHttp.readyState == 4) {
			document.getElementById('ajax_response').innerHTML = xmlHttp.responseText;			
		}
	}
	xmlHttp.send(params);	
}	



function suggestedSearch(field)
{
	if(field.value.length < 3){ document.getElementById('radio_buttons').style.display = 'none'; return false; }
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	  {
	  alert ("Your browser does not support AJAX!");
	  return;
	  }
	var url = "includes/ajax/suggested.php";
	var params = "query="+field.value;
	
	xmlHttp.open("POST", url, true);
	
	//Send the proper header information along with the request
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	
	xmlHttp.onreadystatechange = function() {//Call a function when the state changes. redirect
		if(xmlHttp.readyState == 4) {
			if(xmlHttp.responseText != "FALSE"){
				document.getElementById('radio_buttons').innerHTML = xmlHttp.responseText;
				//alert(xmlHttp.responseText);
				document.getElementById('radio_buttons').style.display = 'block';
			}
		}
	}
	xmlHttp.send(params);	
	/**/
	
	
}	


function suggestedSub(field)
{
	if(field.value.length < 3){ document.getElementById('sub_buttons').style.display = 'none'; return false; }
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	  {
	  alert ("Your browser does not support AJAX!");
	  return;
	  }
	var url = "includes/ajax/suggested.php";
	var params = "query="+field.value+"&div=sub_buttons";
	
	xmlHttp.open("POST", url, true);
	
	//Send the proper header information along with the request
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	
	xmlHttp.onreadystatechange = function() {//Call a function when the state changes. redirect
		if(xmlHttp.readyState == 4) {
			if(xmlHttp.responseText != "FALSE"){
				document.getElementById('sub_buttons').innerHTML = xmlHttp.responseText;
				//alert(xmlHttp.responseText);
				document.getElementById('sub_buttons').style.display = 'block';
			}
		}
	}
	xmlHttp.send(params);	
	/**/
	
	
}	

/**
* Function to submit a HTML form into a Highslide iframe popup.
*/
function submitToHighslide(form) {

    // identify the submit button to start the animation from
    var anchor;
    for (var i = 0; i < form.elements.length; i++) {
    	if (form.elements[i].type == 'submit') {
			anchor = form.elements[i];
			break;
		}
	}

	// open an expander and submit our form when the iframe is ready
	hs.overrides.push('onAfterExpand');
	hs.htmlExpand(anchor, {
		objectType: 'iframe',
		src: 'about:blank',
		headingText: 'Search Results',
		height: 400, maxHeight: 12000, width:400,
		align:'center',
		objectHeight: 565,
		onAfterExpand: function(expander) {
			form.target = expander.iframe.name;
			form.submit();
		}
	});

	// return false to delay the sumbit until the iframe is ready
	return false;
}




  
function getArgs() {
	var args = new Object();
	var query = location.search.substring(1);
	var pairs = query.split("&");
	for(var i = 0; i < pairs.length; i++) {
		var pos = pairs[i].indexOf('=');
		if (pos == -1) continue;
		var argname = pairs[i].substring(0,pos);
		var value = pairs[i].substring(pos+1);
		args[argname] = unescape(value);
	}
	return args;
}


function getFormValues()
{
	var str = '';
	var form = document.getElementById('ajax_form');
	var elem = form.elements;
	for(var i = 0; i < elem.length; i++){
		if(elem[i].type.toLowerCase() != 'button' && elem[i].type.toLowerCase() != 'submit' && elem[i].type.toLowerCase() != 'select-one'){/*
			if(elem[i].type.toLowerCase() != "radio" || (elem[i].type.toLowerCase() == "radio" && elem[i].checked == true))
			{*/
				//alert(elem[i].type);
				str += elem[i].name + "=" + elem[i].value;
				//alert(str);
				if(i+2 != elem.length){
					str += "&";
				}		
		}
		
	}
	return str;
}





function GetXmlHttpObject(){
var xmlHttp=null;
try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  }
catch (e)
  {
  // Internet Explorer
  try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
return xmlHttp;}  
