var gExtTabsList = [ 0, 1, 2 ];

function ValidateHotelSearchForm( form, ext, check_for_dates )
{
	var CheckIn = document.getElementById('date1_'+ext);
	if( CheckIn == gTLNG_DATA['date_format'] ) { CheckIn = ''; }
	var CheckIn_isDate = isDate(CheckIn.value);

	var CheckOut = document.getElementById('date2_'+ext);
	if( CheckOut == gTLNG_DATA['date_format'] ) { CheckOut = ''; }
	var CheckOut_isDate = isDate(CheckOut.value);

	if( check_for_dates ) {
		if ( CheckIn_isDate ==false )
		{
			alert( gTLNG_DATA['input_start_date'] );
			CheckIn.focus();
			return false;
		}

		if ( CheckOut_isDate == false )
		{
			alert( gTLNG_DATA['input_end_date'] );
			CheckOut.focus();
			return false;
		}
	}

	if ( (CheckIn_isDate || CheckOut_isDate) && compareDates(CheckIn.value, CheckOut.value) >= 0 )
	{
		alert( gTLNG_DATA['input_valid_date'] );
		CheckIn.focus();
		return false;
	}
    form.submit();
}

function isDate(str_date)
{
	return (str_date.match(/(0[1-9]|[12][0-9]|3[01])-(0[1-9]|1[012])-(19|20)[0-9][0-9]/) == null) ? false : true;
}
function tch(sel, ext_tab)
{
	if( ext_tab.length > 0 ) {
		window.location="./?tt=" + sel.options[sel.options.selectedIndex].value+ext_tab;
	} else {
		//window.location="./?tt=" + sel.options[sel.options.selectedIndex].value+ext_tab;
		window.location="./?tt=" + sel.options[sel.options.selectedIndex].value;
	}
}
function compareDates(str_date_a, str_date_b)
{
	array_date_a = str_date_a.split('-');
	array_date_b = str_date_b.split('-');

	year_a = array_date_a.pop();
	year_b = array_date_b.pop();

	month_a = array_date_a.pop();
	month_b = array_date_b.pop();

	day_a = array_date_a.pop();
	day_b = array_date_b.pop();

	if (year_a == year_b)
	{
		if (month_a == month_b)
		{
			if (day_a == day_b)
				return 0;
			else
			{
				if (day_a < day_b)
					return -1;
				else
					return 1;
			}
		}
		else
		{
			if (month_a < month_b)
				return -1;
			else
				return 1;
		}
	}
	else
	{
		if (year_a < year_b)
			return -1;
		else
			return 1;
	}
}

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 get_date(action, form, s_date_field, e_date_field, nights_field, static_nights){

	var action
	var static_nights
	var form
	var f 			= document.forms[form];
	var check_in 	= f.elements[s_date_field].value
	var check_out 	= f.elements[e_date_field].value
	var nights 		= f.elements[nights_field].value


	if (action == 'nights'){
		if (nights && !isInteger(f.elements[nights_field].value)){
			alert( gTLNG_DATA['input_correct_nights_number'] );
			f.elements[nights_field].value = '';
			return false;
		}
	}

	if (f.elements[s_date_field].value == '' && f.elements[e_date_field].value == ''){
		return false;
	}
	var oneMinute 	= 60 * 1000;  // milliseconds in a minute
	var oneHour 	= oneMinute * 60;
	var oneDay 		= oneHour * 24;
	var oneWeek 	= oneDay * 7;

	var months = new Array(12);
	months[0]="01";
	months[1]="02";
	months[2]="03";
	months[3]="04";
	months[4]="05";
	months[5]="06";
	months[6]="07";
	months[7]="08";
	months[8]="09";
	months[9]="10";
	months[10]="11";
	months[11]="12";

	var in_year 		= check_in.substring(6,10);
	var in_month 		= check_in.substring(3,5);
	var in_day 			= check_in.substring(0,2);
	var out_year 		= check_out.substring(6,10);
	var out_month 		= check_out.substring(3,5);
	var out_day 		= check_out.substring(0,2);
/*
	if (f.check_in.value && !isDate(in_year,in_month,in_day)){
		alert('false');
	}
*/
	if (nights && !isInteger(nights)){
		nights = 0;
	}

	if (action == 'nights'){
		if (!nights){
			alert( gTLNG_DATA['input_correct_nights_number'] );
			f.elements[nights_field].value = '';
			return false;
			}
    		var check_in_date 	= new Date(in_month+"/"+in_day+"/"+in_year);
    		check_in_date.setHours(12)
    		var check_out_date 	= new Date(out_month+"/"+out_day+"/"+out_year);
    		check_out_date.setHours(12)
    		var check_in_time 	= (check_in_date.getTime() + (2 * 3600000))
    		var check_out_time 	= (check_out_date.getTime() + (2 * 3600000))

			if (!isNaN(check_in_date)){
	    		var check_out_date 	= new Date(check_in_time + (oneDay * nights))
	    		var out_day			= String(check_out_date.getDate());
	    		var out_month		= months[check_out_date.getMonth()];
	    		var out_year		= String(check_out_date.getFullYear());

	    		if (out_day.length == 1){
	    			var out_day = "0"+out_day
	    		}
	    		f.elements[e_date_field].value = out_day+"-"+out_month+"-"+out_year;
	    		return true;

			}
			else if (!isNaN(check_out_date)){
	    		var check_in_date 	= new Date(check_out_time - (oneDay * nights))
	    		var in_day			= String(check_in_date.getDate());
	    		var in_month		= months[check_in_date.getMonth()];
	    		var in_year			= String(check_in_date.getFullYear());
	    		if (in_day.length == 1){
	    			var in_day = "0"+in_day
	    		}
    			f.elements[s_date_field].value = in_day+"-"+in_month+"-"+in_year;
    			return true;
			}
		}
	if (action == 'start_date' || action == 'end_date'){

    		var check_in_date 	= new Date(in_month+"/"+in_day+"/"+in_year);
    		check_in_date.setHours(12)
    		var check_out_date 	= new Date(out_month+"/"+out_day+"/"+out_year);
    		check_out_date.setHours(12)
    		var check_in_time 	= (check_in_date.getTime() + (2 * 3600000))
    		var check_out_time 	= (check_out_date.getTime() + (2 * 3600000))

    		if (isNaN(check_out_date) && check_in_date && !isNaN(check_in_date) && nights){
    			var check_out_date = new Date((check_in_time + oneDay * nights))
	    		var out_day			= String(check_out_date.getDate());
	    		var out_month		= months[check_out_date.getMonth()];
	    		var out_year		= String(check_out_date.getFullYear());
	    		if (out_day.length == 1){
	    			var out_day = "0"+out_day
	    		}
    			f.elements[e_date_field].value = out_day+"-"+out_month+"-"+out_year;
    			return true;
    		}
    		else if (isNaN(check_in_date) && check_out_date && !isNaN(check_out_date) && nights){
    			var check_in_date = new Date((check_out_time - oneDay * nights));
	    		var in_day			= String(check_in_date.getDate());
	    		var in_month		= months[check_in_date.getMonth()];
	    		var in_year			= String(check_in_date.getFullYear());
	    		if (in_day.length == 1){
	    			var in_day = "0"+in_day
	    		}
    			f.elements[s_date_field].value = in_day+"-"+in_month+"-"+in_year;
    			return true;
    		}
    		else if (((isNaN(nights) || !nights) && static_nights) || !static_nights) {

    			var nights	= ((check_out_time - check_in_time) / oneDay)
    			var nights	= Math.round(nights)
    			if (!isInteger(nights) || isNaN(nights)){
    				nights = '';
    			}

    			f.elements[nights_field].value = nights;
    			return true;
    		}
    		else {
    			if (action == 'start_date' && nights){
	    			var check_out_date = new Date((check_in_time + oneDay * nights))
		    		var out_day			= String(check_out_date.getDate());
		    		var out_month		= months[check_out_date.getMonth()];
		    		var out_year		= String(check_out_date.getFullYear());
		    		if (out_day.length == 1){
		    			var out_day = "0"+out_day
		    		}
	    			f.elements[e_date_field].value = out_day+"-"+out_month+"-"+out_year;
	    			return true;
    			}
    			else if(action == 'end_date' && nights) {
	    			var check_in_date = new Date((check_out_time - oneDay * nights));
		    		var in_day			= String(check_in_date.getDate());
		    		var in_month		= months[check_in_date.getMonth()];
		    		var in_year			= String(check_in_date.getFullYear());
		    		if (in_day.length == 1){
		    			var in_day = "0"+in_day
		    		}
	    			f.elements[s_date_field].value = in_day+"-"+in_month+"-"+in_year;
	    			return true;
    			}
    		}
	}
}
function show_ages(form, ext){

	try {
		var form;
		var type;
	  	var children 	= 	document.forms[form].elements['children'];

		var search_age1	=	document.getElementById('search_age1_' + ext); //document.getElementById("search_age1");
		var search_age2	=	document.getElementById('search_age2_' + ext); //document.getElementById("search_age2");
		var l_age		=	document.getElementById("ch_ages_" + ext);
		if (children.value == 0){
			search_age1.style.display = 'none';
			search_age2.style.display = 'none';
			l_age.style.display = 'none';
		}

		if (children.value == 1){
			l_age.style.display = 'block';
			search_age1.style.display = 'block';
			search_age2.style.display = 'none';
			search_age1.focus()
		}

		if (children.value == 2){
			l_age.style.display = 'block';
			search_age1.style.display = 'block';
			search_age1.focus()
			search_age2.style.display = 'block';
		}

	  } catch (e) {
	  	//alert("Oops! Something bad just happened. Calling 911...");
	  	return false;
	  }

	  return true;
}


function clearForms(ext){

  document.getElementById("ch_ages_"+ext).style.display 	= 'none';

  var type = null;

  for (var x=0; x<document.forms.length; x++){

    for (var y=0; y<document.forms[x].elements.length; y++){

      type = document.forms[x].elements[y].type;

      switch(type){
        case "text":
        case "textarea":
        case "password":
          document.forms[x].elements[y].value = "";
          break;
        case "radio":
        case "checkbox":
          document.forms[x].elements[y].checked = "";
          break;
        case "select-one":
          document.forms[x].elements[y].options[0].selected = true;
          break;
        case "select-multiple":
          for (z=0; z<document.forms[x].elements[y].options.length; z++){
            document.forms[x].elements[y].options[z].selected = false;
          }
        break;
      }
    }
  }
  
  var extCnt = gExtTabsList.length;
  for(var i=0;i<extCnt;i++) {
  	document.getElementById("date1_"+gExtTabsList[i]).value = document.getElementById("date2_"+gExtTabsList[i]).value = gTLNG_DATA['date_format'];
  	document.getElementById("cy_"+gExtTabsList[i]).value = 0;
  }
}

function popup(mylink, width, height) {

	if( !width )	width	=	730;
	if( !height )	height	=	460;

	newwindow=window.open(mylink.href,'name','height='+height+',width='+width+'');
	if (window.focus) {newwindow.focus()}
	return false;
}

function show_map_on_popup( form, ext, check_for_dates, link, width, height ){
	var validate_search_form = ValidateHotelSearchForm( form, ext, check_for_dates );
	if(validate_search_form == false) {
		return false;
	}
	popup( link, width, height );
	return true;
}
