///
/// ALL THING YOU NEED FOR REQUEST FORMS

	var div1 = "";
	//var fader = "";
	//var request_name = "";
	//var btn_calculate = "";
	//var price_div = "";
	//var from_date = "";
	//var to_date = "";

function openRequest()
{
	div1 = document.getElementById('div1');
	div1.style.display = "block";
	div1.style.top = arguments[1] + "px";
	div1.style.left = arguments[0] + "px";
	
	if(arguments[2])
		injectInput('request_id', arguments[2]);
	
	if(arguments[3])
		injectInput('request_about', arguments[3]);
	
	if(arguments[4] && arguments[5])
	{
		injectDiv('select_container', buildSelect_hotel(arguments[4], arguments[5], arguments[6]));
	}
		
	else if(arguments[4])
		injectDiv('select_container', buildSelect(arguments[4]));
	
	if(arguments[7])
		refreshPrice(arguments[7]);
	
	
	fader.fadeIn();
	fader2.fadeIn();
}

function injectInput(some_id, text_to_inject)
{
	var id_container = document.getElementById(some_id);
	id_container.value = text_to_inject;
}

function injectDiv(some_id, text_to_inject)
{
	var id_container = document.getElementById(some_id);
	id_container.innerHTML = text_to_inject;
}

function closeRequest()
{
	fader.fadeOut();
	fader2.fadeOut();
}
						
function validate()
{
	if (document.forms['request'].elements['name'].value == "") 
	{
		alert("Please select Name.!");
		document.forms['request'].elements['name'].focus();
		return false;
	}
	if (document.forms['request'].elements['last_name'].value == "") 
	{
		alert("Please select Last name.!");
		document.forms['request'].elements['last_name'].focus();
		return false;
	}
	if (document.forms['request'].elements['phone'].value == "") 
	{
		alert("Please select Phone.!");
		document.forms['request'].elements['phone'].focus();
		return false;
	}
	if (document.forms['request'].elements['email'].value == "" || echeck(document.forms['request'].elements['email'].value)==false) 
	{
		alert("Please select correct e-mail address.!");
		document.forms['request'].elements['email'].value = "";
		document.forms['request'].elements['email'].focus();
		return false;
	}
							
	return true
}
						
function CheckAndGo()
{
	var checked = false;
	checked = validate();
	if (checked) 
	{
		fader.fadeOut();
		sendRequest();
		document.forms['request'].reset();
		closeRequest();
	}
}
						
function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	//alert(obj.id);
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}
			
						
						
						
//AJAX Functions
function createXMLHttp() 
{

    if (typeof XMLHttpRequest != "undefined") 
	{
        return new XMLHttpRequest();
    } 
	else if (window.ActiveXObject) 
	{
      	var aVersions = [ "MSXML2.XMLHttp.5.0",
        "MSXML2.XMLHttp.4.0","MSXML2.XMLHttp.3.0",
       	"MSXML2.XMLHttp","Microsoft.XMLHttp"
      	];

      	for (var i = 0; i < aVersions.length; i++) 
		{
        	try 
			{
            	var oXmlHttp = new ActiveXObject(aVersions[i]);
           		return oXmlHttp;
        	} 
			catch (oError) 
			{
            	//Do nothing
        	}
      	}
   	}
    throw new Error("XMLHttp object could be created.");
}

						
function getRequestBody(oForm) 
{
    var aParams = new Array();

    for (var i=0 ; i < oForm.elements.length; i++) 
	{
        var sParam = encodeURIComponent(oForm.elements[i].name);
        sParam += "=";
        sParam += encodeURIComponent(oForm.elements[i].value);
        aParams.push(sParam);
    }

    return aParams.join("&");
}

function getRequest_calculate(oForm) 
{
    var aParams = new Array();
	
	sParam = encodeURIComponent('request_from_date');
    sParam += "=";
    sParam += encodeURIComponent(oForm.elements['request_from_date'].value);
    aParams.push(sParam);
	
	sParam = encodeURIComponent('request_to_date');
    sParam += "=";
    sParam += encodeURIComponent(oForm.elements['request_to_date'].value);
    aParams.push(sParam);
	
	sParam = encodeURIComponent('reserve_type_room');
    sParam += "=";
    sParam += encodeURIComponent(oForm.elements['reserve_type_room'].value);
    aParams.push(sParam);
	
	sParam = encodeURIComponent('filter_room_num');
    sParam += "=";
    sParam += encodeURIComponent(oForm.elements['filter_room_num'].value);
    aParams.push(sParam);
    
	sParam = encodeURIComponent('id');
    sParam += "=";
    sParam += encodeURIComponent(oForm.elements['request_id'].value);
    aParams.push(sParam);


    return aParams.join("&");
}


						
function sendRequest() 
{
    var oForm = document.forms['request'];
    var sBody = getRequestBody(oForm);

    var oXmlHttp = createXMLHttp();
    oXmlHttp.open("post", oForm.action, true);
   	oXmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

    oXmlHttp.onreadystatechange = function () 
	{
        if (oXmlHttp.readyState == 4) 
		{
            if (oXmlHttp.status == 200) 
			{
                saveResult(oXmlHttp.responseText);
            } 
			else 
			{
                saveResult("An error occurred: "+ oXmlHttp.statusText);
           	}
        }
    };
    oXmlHttp.send(sBody);
	
}

function sendRequest_calculate() 
{
    var oForm = document.forms['request'];
    var sBody = getRequest_calculate(oForm);
	//alert(sBody);
    var oXmlHttp = createXMLHttp();
    oXmlHttp.open("post", "/calculate_price.php", true);
   	oXmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

    oXmlHttp.onreadystatechange = function () 
	{
        if (oXmlHttp.readyState == 4) 
		{
            if (oXmlHttp.status == 200) 
			{
                outputResult(oXmlHttp.responseText);
            } 
			else 
			{
                outputResult("An error occurred: "+ oXmlHttp.statusText);
           	}
        }
    };
    oXmlHttp.send(sBody);
}

function showCal1()
{
	showCalendar1();
	var from_date = document.getElementById('selDate1').value;
	var to_date = document.getElementById('selDate2').value;
	document.getElementById('from_date').value = from_date;
	document.getElementById('to_date').value = from_date;
}

function checkNecessaryfields()
{
	if (document.forms['request'].elements['request_from_date'].value != "dd/mm/yy" && document.forms['request'].elements['request_to_date'].value != "dd/mm/yy" && document.forms['request'].elements['reserve_type_room'].value != "-1" ) 
		enableButton();
	else 
		disableButton();
}
function enableButton()
{
	var button = document.getElementById('calculate');
	//var button = document.forms['request'].elements['calculate'];
	button.className = 'cool_button';
	button.disabled = false;
}
function disableButton()
{
	if (arguments[0])
		button = document.getElementById(arguments[0]);
	else 
		button = document.getElementById('calculate');
	//var button = document.forms['request'].elements['calculate'];
	button.className = 'cool_button_disable';
	button.disabled = true;
}
function outputResult(val)
{
	disableButton();
	refreshPrice(val);
	//alert(val);
}
function refreshPrice(value)
{
	var price = document.getElementById('reserve_price');	
	price.innerHTML = value;
	var price_input = document.getElementById('price_hotel');
	price_input.value = value;
}
function clearForm()
{
	document.forms['request'].reset;
	alert("Clearing");
}
function saveResult(msg)
{
	
}

function buildSelect(arr)
{
	var string = '<select name="offer" style="width:280px;" class="select">';
	for (var i=0 ; i < arr.length; i++) 
	{
        string += '<option value="' + arr[i] + '">' + arr[i] + '</option>';
    }
	string += '</select>';
	return string;
}

function buildSelect_hotel(arr, keys, value)
{
	var string = '<select name="reserve_type_room" onclick="checkNecessaryfields();" class="select"><option value="-1">--- Rooms ---</option>';
	for (var i=0 ; i < arr.length; i++) 
	{
        string += '<option value="' + keys[i] + '"';
		if(keys[i]==value) string += " selected";
		string += '>' + arr[i] + '</option>';
    }
	string += '</select>';
	return string;
}

function requestArea(country_id)
{
	templateRequest('/server/city_provider.php?id=' + country_id, 'displayBreaksCities');
}

function requestAreaVacations(country_id)
{
	templateRequest('/server/city_provider_vacations.php?id=' + country_id, 'displayBreaksCities');
}

function requestAreaCruises(country_id)
{
	templateRequest('/server/city_provider_cruises.php?id=' + country_id, 'displayBreaksCities');
}

function templateRequest(url, func) {
    var oXmlHttp = createXMLHttp();
    oXmlHttp.open("get", url, true);
    oXmlHttp.onreadystatechange = function () {
        if (oXmlHttp.readyState == 4) {

            if (oXmlHttp.status == 200) {
				var result = JSON.parse(oXmlHttp.responseText);
                eval(func + "(result);");
            } else {
                alert("An error occurred: "+ oXmlHttp.statusText);
            }
        }
    };
    oXmlHttp.send(null);
}

function displayBreaksCities(result)
{
	var div = document.getElementById('container_breaks_cities');
	div.innerHTML = "";

	var lng = result.lng;
	var first = "";
	if(lng=="en")
	{
		first = "--- All ---";
	}
	else 
		first = "--- Всички ---";
		
	cont = '<select name="filter_city_breaks" class="select" style="width:120px;"><option value="-1" selected>' + first + '</option>';
	
	var city_arr = result.arr;
	for (var i=0 ; i < city_arr.length; i++) 
	{
		some = city_arr[i];
		//alert(some.name);
        cont += '<option value="' + some.id + '">' + some.name + '</option>';
    }
	cont += '</select>';
	div.innerHTML = cont;
}


/**
 * DHTML email validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */

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){
		   //alert("Invalid E-mail ID")
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   //alert("Invalid E-mail ID")
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    //alert("Invalid E-mail ID")
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    //alert("Invalid E-mail ID")
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    //alert("Invalid E-mail ID")
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    //alert("Invalid E-mail ID")
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    //alert("Invalid E-mail ID")
		    return false
		 }

 		 return true					
	}

/*function ValidateForm(){
	var emailID=document.frmSample.txtEmail
	
	if ((emailID.value==null)||(emailID.value=="")){
		alert("Please Enter your Email ID")
		emailID.focus()
		return false
	}
	if (echeck(emailID.value)==false){
		emailID.value=""
		emailID.focus()
		return false
	}
	return true
 }*/

function sendFerry()
{
	var oForm = document.forms['request'];
    var sBody = getRequestBody(oForm);

    var oXmlHttp = createXMLHttp();
    oXmlHttp.open("post", "ferry_mail.php", true);
   	oXmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

    oXmlHttp.onreadystatechange = function () 
	{
        if (oXmlHttp.readyState == 4) 
		{
            if (oXmlHttp.status == 200) 
			{
                saveResult(oXmlHttp.responseText);
            } 
			else 
			{
                saveResult("An error occurred: "+ oXmlHttp.statusText);
           	}
        }
    };
    oXmlHttp.send(sBody);
}



