function showReturn()
{
	for(i = 1; i < 3; i++)
	{
		if(document.getElementById('return_id'+i).style.display == '')
		{
			document.getElementById('return_id'+i).style.display = 'none';
		}
		else
		{
			document.getElementById('return_id'+i).style.display = '';
		}
	}
}
function nothing()
{
	return;
}
function createXmlHttp()
{
	if(window.ActiveXObject)
	{
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else if(window.XMLHttpRequest)
	{
		xmlHttp = new XMLHttpRequest();
	}
}

function getVal(element)
{
	return document.getElementById(element).value;
}

function getObj(element)
{
	return document.getElementById(element);
}

function getDateX(prefix)
{
	return getVal(prefix + 'yId') + "-" +
			getVal(prefix + 'mId') + "-" +
			getVal(prefix + 'dId');
}
function getJSDate(prefix)
{
	return new Date(getVal(prefix + 'yId'), 
					getVal(prefix + 'mId')-1, 
					getVal(prefix + 'dId'), 
					0,
					0,
					0);
}
function getJSToday()
{
	t = new Date();
	today = new Date(t.getFullYear(), t.getMonth(), t.getDate(), 0,0,0);
	
	return today;
}
function getTimeX(prefix)
{
	hours = getVal(prefix + 'tId');
	mins = getVal(prefix + 'sId');
	
	hours = hours < 10?"0"+hours:hours;
	mins = mins < 10?"0"+mins:mins;
	
	return hours + ":" + mins + ":00";
}

function getPrice()
{
	/*destination*/
	var from = getVal("fromId");
	var to = getVal("toId");
	/*transfer*/
	var transfer_date = getDateX("td");
	var transfer_time = getTimeX("td");
	var pass = getVal("passId");
	/*transfer back*/
	var transfer_date_b = getDateX("rd");
	var transfer_time_b = getTimeX("rd");
	var tb = document.getElementById("backId").checked==true?1:0;
	
	/*some checkers*/
	if((from == 0) || (to == 0))
	{
		alert("Choose FROM and TO first");
		return;
	}
	
	if(from == to)
	{
		alert("FROM and TO destinations are same");
		return;
	}
	
	if(getJSDate("td") < getJSToday())
	{
		alert("Transfer date is before this day");
		return;
	}
	
	createXmlHttp();
	
	var url = "service.php";
	var query = "";
	
	query = "query=getPrice" +
			"&from=" + from +
			"&to=" + to +
			"&transfer_date=" + transfer_date + 
			"&transfer_time=" + transfer_time + 
			"&passengers=" + pass + 
			"&transfer_date_b=" + transfer_date_b + 
			"&transfer_time_b=" + transfer_time_b + 
			"&back=" + tb;
			
	xmlHttp.open("POST",url,true);
	xmlHttp.onreadystatechange = processData;
	xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	xmlHttp.send(query);

}
function processData()
{
	if(xmlHttp.readyState == 4)
	{
		if(xmlHttp.status == 200)
		{
			serverReturn = xmlHttp.responseText;
			
			//alert(serverReturn);
			
			document.getElementById('searchResult').innerHTML = serverReturn;
		}
	}
}

function pullDestinations()
{
	createXmlHttp();
	
	var url = "service.php";
	var country = document.getElementById('countryId').value;
	var query = "query=pullDestinations&country=" + country;
	
	xmlHttp.open("POST",url,true);
	xmlHttp.onreadystatechange = setDestinations;
	xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	xmlHttp.send(query);
}

function pullTo()
{
	createXmlHttp();
	
	var url = "service.php";
	var from = document.getElementById('fromId').value;
	var query = "query=specifyTo&from=" + from;
	
	xmlHttp.open("POST",url,true);
	xmlHttp.onreadystatechange = setTo;
	xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	xmlHttp.send(query);
}

function setTo()
{
    if(xmlHttp.readyState == 4)
    {
        if(xmlHttp.status == 200)
        {
            serverReturn = xmlHttp.responseText;
            select_innerHTML(document.getElementById("toId"),serverReturn);
        }
    }
}





function setDestinations()
{
	if(xmlHttp.readyState == 4)
	{
		if(xmlHttp.status == 200)
		{
			serverReturn = xmlHttp.responseText;
			
			eval(serverReturn);
			
			select_innerHTML(document.getElementById("fromId"),newDestList[0]);
			select_innerHTML(document.getElementById("toId"),newDestList[1]);
		}
	}
}

function getOrderForm(d,reversed)
{
	document.getElementById('rateId').value = d;
	document.getElementById('gof').submit();
}

function nothing()
{
	return;
}

function checkemail(str)
{
	var filter=/^.+@.+\..{2,8}$/;
	return (filter.test(str));
}

function check_num(obj,num)
{
	var objRegex =  /\D/g;
	str = obj.value;
	obj.value = str.replace(objRegex,"");
	str = obj.value;
	if(str.length > num)
	{
		obj.value = str.substr(0,16);
		alert("Only " + num + " numbers");
	}
}

function checkOrderForm()
{
	var normalColor = "#FEFDFD";
	var alertColor = "#FDFA00";
	
	/*required fields*/
	req = new Array("name","email","mobile","cc_number",
					"cc_cvc","cc_expiry","cc_name");
	
	reqNames = new Array();
	reqNames["name"] = "Lead Passenger Name";
	reqNames["email"] = "Email";
	reqNames["mobile"] = "Mobile";
	reqNames["cc_number"] = "Credit card number";
	reqNames["cc_cvc"] = "Credit card CVC";
	reqNames["cc_expiry"] = "Credit card expiry";
	reqNames["cc_name"] = "Name on credit card";
	
	
	if(from_airport)
	{
    	req.push("arrival_airline");
    	req.push("arrival_flight");
    	req.push("arrival_airport_d");
    	
    	reqNames["arrival_airline"] = "Arrival airline";
    	reqNames["arrival_flight"] = "Arrival flight";
    	reqNames["arrival_airport_d"] = "Airport of departure";
    }
    else
    {
        req.push("arrival_pp");
        req.push("arrival_pp_addr");
        
        reqNames["arrival_pp"] = "Arrival pick-up point";
        reqNames["arrival_pp_addr"] = "Arrival pick-up address";
     }
    
	
	for(i = 0; i < req.length; i++)
	{
		if(getObj(req[i]+"Id")!=null)
		{
    		getObj(req[i]+"Id").style.backgroundColor = normalColor;
		}
		else
		{
    		alert(req[i]);
        }
        
		if(getVal(req[i]+"Id")=="")
		{
			getObj(req[i]+"Id").style.backgroundColor = alertColor;
			alert(reqNames[req[i]] + " must be filled");
			return false;
		}
	}
	
	/*required fields for transfer back*/
	if(document.getElementById('backId').value == 1)
	{
		reqBack = new Array("departure_pp","departure_pp_addr");
		
		if(to_airport)
        {
            reqBack = new Array("departure_airline","departure_flight");
            reqBackNames = new Array();
		    reqBackNames["departure_airline"] = "Departure airline";
		    reqBackNames["departure_flight"] = "Departure flight";
        }
        else
        {
            reqBack = new Array("departure_pp_addr");
            reqBackNames = new Array();
		    reqBackNames["departure_pp_addr"] = "Pickup address";
        }
	
		
		for(i = 0; i < reqBack.length; i++)
		{
			getObj(reqBack[i]+"Id").style.backgroundColor = normalColor;
			getObj(reqBack[i]+"Id").style.border = 'solid 1px #8C8C8C;';
			if(getVal(reqBack[i]+"Id")=="")
			{
				getObj(reqBack[i]+"Id").style.backgroundColor = alertColor;
				getObj(reqBack[i]+"Id").style.border = 'solid 1px red;';
				alert(reqBackNames[reqBack[i]] + " must be filled");
				return false;
			}
		}
	}
	
	/*check email*/
	getObj("emailId").style.backgroundColor = normalColor;
	if(!checkemail(getVal("emailId")))
	{
    	getObj("emailId").style.backgroundColor = alertColor;
    	alert("Not valid email");
    	return false;
    }
    
    /*check other cc card type*/
    if((getObj("cc_typeID").value == 1000) && (getVal("cc_otherId")==""))
    {
        alert("Other type of credit card must be filled");
        return false;
    }

	document.getElementById('orderFormId').submit();
}

function checkOtherCard()
{
    if(getObj("cc_typeID").value == 1000)
    {
        getObj("cc_other1").style.display = '';
        getObj("cc_other2").style.display = '';
    }
    else
    {
         getObj("cc_other1").style.display = 'none';
         getObj("cc_other2").style.display = 'none';
    }
}

function select_innerHTML(objeto,innerHTML)
{
	objeto.innerHTML = ""
	//creating phantom element to receive temp innerHTML    
	var selTemp = document.createElement("micoxselect")    
	var opt;    
	selTemp.id="micoxselect1"
	document.body.appendChild(selTemp)    
	selTemp = document.getElementById("micoxselect1")    
	selTemp.style.display="none"    
	if(innerHTML.toLowerCase().indexOf("<option")<0)
	{//if not option, convert do option        
		innerHTML = "<option>" + innerHTML + "</option>"
	}
	innerHTML = innerHTML.replace(/<option/g,"<span").replace(/<\/option/g,"</span")
	selTemp.innerHTML = innerHTML
	
	//transfering childs of phantom element to options
	for(var i=0;i<selTemp.childNodes.length;i++)
	{
		if(selTemp.childNodes[i].tagName)
		{
			opt = document.createElement("OPTION")
			for(var j=0;j<selTemp.childNodes[i].attributes.length;j++)
			{
				opt.setAttributeNode(selTemp.childNodes[i].attributes[j].cloneNode(true))
			}
			opt.value = selTemp.childNodes[i].getAttribute("value")
			opt.text = selTemp.childNodes[i].innerHTML
			if(document.all){//IEca
				objeto.add(opt)
			}
			else
			{
				objeto.appendChild(opt)
			}
		}
	}
	//clear phantom
	document.body.removeChild(selTemp)
	selTemp = null
}

