	DOMHelper = {DGE:function(x){

		    return document.getElementById(x)

	  }

	}

	dh = DOMHelper;

	dh.b = dh.DGE;

	

	Date.prototype.isNorthAmerica = function(){

            return (this.getTimezoneOffset() < 660 && this.getTimezoneOffset() > 180);

            //return false;

	}

	Date.prototype.octopusDisplayFormat = function(){

	  var mm = this.getMonth()+1;

	  if(mm < 10) mm = "0" + mm;

	  var dd = this.getDate();

	  if(dd < 10) dd = "0" + dd;

	  if(this.isNorthAmerica()){

	      return mm + "/" + dd + "/" + this.getFullYear();

	  }

	  else{

	      return dd + "/" + mm + "/" + this.getFullYear();

	  }

	}



	today = new Date();

	dFormat = today.isNorthAmerica()?"mm/dd/yyyy":"dd/mm/yyyy";





	function makeEuroDate(str){

      var vals = str.split("/");

      var nDateString = vals[1] + "/" + vals[0] + "/" + vals[2];

      return new Date(nDateString);

	}

	function formatDateForURL(d){

	    var month = d.getMonth() + 1;

	    if(month < 10) month = "0" + month;

	    var date = d.getDate();

	    if(date < 10) date = "0" + date;

	    return d.getFullYear() + "-" + month + "-" + date;

	}



	function getSelectedValue(id){

	    try{

	        var theSelect = DGE(id);

	        return theSelect.options[theSelect.options.selectedIndex].value;

	    }

	    catch(Error){

	       return null;

	    }

	}

	expDate = /^\d{1,2}\/\d{1,2}\/\d{2,4}$/

	function DGE(x){return document.getElementById(x)}



	function validateDate(dateStr){

	    if(!expDate.test(dateStr)) {return false;}

	    var monthNumStr = today.isNorthAmerica() ? dateStr.split("/")[0]:dateStr.split("/")[1];

	    var dateNumStr = today.isNorthAmerica()?dateStr.split("/")[1]:dateStr.split("/")[0];

	    var yearNum = parseFloat(dateStr.split("/")[2]);

	    var monthNum = parseFloat(monthNumStr);

	    var dateNum = parseFloat(dateNumStr);

	    var maxDate = 31;

	    if(monthNum == 4 || monthNum == 5 || monthNum ==  6 || monthNum == 9 || monthNum == 11){

	      maxDate = 30;

	    }

	    else if (monthNum == 2){

	      if(yearNum %4 ==0) {maxDate = 29;}

	      else{

	         maxDate = 28;

	      }

	    }

	    var bValid= (dateNum <= maxDate && dateNum > 0 && monthNum <= 12 && monthNum > 0);

        return bValid;

	}



	function unselectRadios(){

   	var theRadio = null;

   	var radios = document.getElementsByName("destinationRadio");

   	for(var i=0;i<radios.length;i++){

      	if(radios[i].checked==true) {

          theRadio = radios[i];

      		}

             }

   	if(theRadio != null) theRadio.checked=false;

	}



	function resetDestination(){

    	var d = dh.b("destination");

    	d.options.selectedIndex=0;

	}

	

	function setCheckout(){

	    var aSpan = DGE("alertSpan");

	    //aSpan.innerHTML = "";

	    var numNights = parseInt(DGE("nights").value);

	    if(!isNaN(numNights)){

	        var checkinDateVal = DGE("checkin").value;

	        if(!expDate.test(checkinDateVal)){

                aSpan.innerHTML = "";

	        }

	        else if(!validateDate(checkinDateVal)){

	           aSpan.innerHTML = "";

	        }

            else{

	            var tDate = today.isNorthAmerica()?new Date(checkinDateVal):makeEuroDate(checkinDateVal);

	            tDate.setDate(tDate.getDate() + numNights);

              DGE("checkout").innerHTML = tDate.octopusDisplayFormat();

            }

	    }

	    else{

	        aSpan.innerHTML = "";

	    }

	}

	function makeURL(){

	    var aSpan = DGE("alertSpan");

	    aSpan.innerHTML = "";

	    var destinationVal = getSelectedValue("destination");

            var dradios = document.getElementsByName("destinationRadio");

            var dradioVal = "";

            for(var i=0;i<dradios.length;i++){

               if(dradios[i].checked == true){

                 destinationVal= dradios[i].value;

                

               }

            }

	    var checkinVal = DGE("checkin").value;

	    var nightsVal = DGE("nights").value;

	    var roomtypeVal = getSelectedValue("roomtype");

	    var roomsVal = getSelectedValue("rooms");

	    var starratingVal = getSelectedValue("starrating");

	    var currencyVal = getSelectedValue("currency");

            var bErrors = false;

            var errorMsg = "";

            var linebreak = "\n";

	    if(destinationVal == 0){

	        errorMsg = "Va rugam selectati destinatia" + linebreak;

	        bErrors = true;

	    }

	    if(!expDate.test(checkinVal) ){

	        errorMsg += "Va rugam introduceti data de plecare in formatul " + dFormat + linebreak;

	        bErrors = true;

	    }

	    if(!validateDate(checkinVal)){

	        errorMsg += "";

	        bErrors = true;

	    }

	    if(isNaN(parseInt(nightsVal)))

	    {

	        errorMsg += "Va rugam introduceti numarul de nopti" + linebreak;

	        bErrors = true;

	    }

	    if(bErrors){

	        //aSpan.innerHTML = errorMsg;

	        alert(errorMsg);

	        return;

	    }

	    var destinationArg = "&destination=" + destinationVal;

        var checkinArg = "";

	        if(!expDate.test(checkinVal)){

                aSpan.innerHTML = "Data de plecare trebuie sa fie in formatul " + dFormat;

	        }

	        else if(!validateDate(checkinVal)){

	           aSpan.innerHTML = "Va rugam selectati din nou data";

	        }

            else{

	            var tDate = today.isNorthAmerica()?new Date(checkinVal):makeEuroDate(checkinVal);

                checkinArg = "&checkin=" + formatDateForURL(tDate);

            }

	    var nightsArg= nightsVal == ""?"":"&nights=" + nightsVal;

	    var roomtypeArg = "&roomtype=" + roomtypeVal;

	    var roomsArg = "&rooms=" + roomsVal;

	    var starratingArg = starratingVal == 0?"":"&starrating=" + starratingVal;

	    var currencyArg = currencyVal == "0"?"":"&currency=" + currencyVal;

	    //var URLRoot = "http://www.octopustravel.com/at/HotelLink?country=RO&language=RO&siteid=gtsturism";

var URLRoot = "http://www.octopustravel.com/at/HotelLink?country=RO&language=RO&siteid=gtsturism";

	    var URL = URLRoot + destinationArg + checkinArg + nightsArg + roomtypeArg + roomsArg + starratingArg + currencyArg;

//DGE("alertSpan").innerHTML = URL;

	    //alert("The constructed URL is : \n" + URL);

          window.open(URL,"_blank");

	   	}

	function init(){

	   var co = DGE("checkout")

	   var ci = DGE("checkin");

	   var ciDate = new Date(today);

	   ciDate.setDate(ciDate.getDate() + 1)

	   ci.value = ciDate.octopusDisplayFormat();

	   ciDate.setDate(ciDate.getDate() + 1);

	   co.innerHTML = ciDate.octopusDisplayFormat();



	}

function openCal(x){

  document.onkeypress = customizeCal;

  var maxdate = new Date();

  maxdate.setMonth(maxdate.getMonth() +futureMonthLimit);

  if(self.gfPop)  gfPop.fLimitPop(today.octopusDisplayFormat(),x,maxdate.octopusDisplayFormat());

}



function customizeCal(e){

	if (!self.gfPop) return;

	else gfPop.fHideCal();

	document.onkeypress=null;

}

futureMonthLimit=13;
