// Dreamwaever scripts
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
function MM_showHideLayers() 
// instead of changing visibility it switches between (display:'block';) and (display:'none';)
// bsp: MM_showHideLayers('div_name','','hide') or show;
{ 
	var i, p, v, obj, k;
	var args=MM_showHideLayers.arguments;
	for (i=0; i<(args.length-2); i+=3) 
	{
		if ((obj=MM_findObj(args[i]))!=null) 
		{ 
			v=args[i+2];
			if (obj.style) 
			{ 
				obj=obj.style; 
				v=(v=='show')?'block':(v=='hide')?'none':v; 
			}
			obj.display=v;
		}
	}
}

// switches between (display:'block';) and (display:'none';)
// bsp: MM_showHideLayers('div_name');
function onOffLayers() 
{ 
	var i, p, v, obj, k;
	var args=onOffLayers.arguments;
	for (i=0; i<(args.length); i++) 
	{
		if ((obj=MM_findObj(args[i]))!=null) 
		{ 
			if (obj.style) 
			{ 
				obj=obj.style; 
				if (obj.display == 'none') { v='block'; }
				if (obj.display == 'block') { v='none'; }
				if (obj.display == '') { v='none'; }
			}
			obj.display=v;
		}
	}
}
function push2Value()
// Takes the first argument and pushes it into the value of the second argument
{
	var args=push2Value.arguments;
	if ((obj=MM_findObj(args[1])) != null)
	{
		obj.value = args[0];
	}
}
function clearValue()
{
	var args=clearValue.arguments;
	if ((obj=MM_findObj(args[0])) != null)
	{
		obj.value = '';
	}
}
function changeInnerHtml()
// Changes the innerHTML of the first arg (object ID) into the secong arg (string)
{
	var args=changeInnerHtml.arguments;
	if ((obj=MM_findObj(args[0])) != null)
	{
		obj.innerHTML = args[1];
	}
}
function setSelectListToValue()
{
	var i, si, v, args=setSelectListToValue.arguments;
	if ((obj=MM_findObj(args[1])) != null)
	{
		v = args[0]; // value nach dem gesucht wird
		//alert(v);
		for(i=0; i<obj.length; i++)
		{
			// alert(obj.options[i].value+' ist '+i);
			if(obj.options[i].value == v) 
			{
				//alert(i);
				si = i // Wenn Option value = gesuchter value -> selectedindex speichern
			} 
		}
		//alert(obj.length);
		obj.selectedIndex = si;
	}
}
function clearSelectList()
{
	var args=clearSelectList.arguments;
	if ((obj=MM_findObj(args[0])) != null)
	{
		obj.selectedIndex = 0;
	}
}


// Calendar
function calculateDays()
// Calculates the departure day in 'depday' if 'arrday' and 'quantity_nights' is filled
{
	// get Dep/Arrday/Days Values from form
	var valueDepday = document.getElementById('ctl00_ContentPlaceHolder1_tbCheckOut').value;
	var valueArrday = document.getElementById('ctl00_ContentPlaceHolder1_tbCheckIn').value;
	var valueDays 	= document.getElementById('ctl00_ContentPlaceHolder1_qantity_nights').value;
	
	// BERECHNUNG: Bei offenen depday Feld
	if (valueArrday != '' && valueDays != '')
	{
		// valueDays++; // Ergaenzen
		
		var dateArrday = createDateObject(valueArrday,' | ',dtSeparator); // ArrDay holen
		var dateDaysSeconds = valueDays * 24 * 60 * 60 * 1000; // Tage in milSek umrechnen
		
		var valueDepday = dateArrday.getTime()+ dateDaysSeconds; // ArrDay und Tage addieren

		var dateDepday = new Date(); 
		dateDepday.setTime(valueDepday);

		// debug(dateArrday.toUTCString() + ' + ' + dateDaysSeconds + ' = ' + dateDepday.getUTCFullYear() + ' - ' + dateDepday.getUTCMonth() + ' - ' + dateDepday.getUTCDate());

		var weekdayDepday = weekdays[dateDepday.getUTCDay()]; // Wochentag ermitteln
		
		insertDate(dateDepday.print(dtFormat),weekdayDepday,'ctl00_ContentPlaceHolder1_tbCheckOut'); // in depday schreiben
	} 

	// BERECHNUNG: Bei offenen valueDays Feld /ob 02.09.08
	if (valueArrday != '' && valueDepday != '' && valueDays == '')
	{
	    var dateArrday = createDateObject(valueArrday,' | ',dtSeparator); // ArrDay holen
	    var dateDepday = createDateObject(valueDepday,' | ',dtSeparator); // DepDay holen
	    if (dateArrday != 'NaN' && dateDepday != 'NaN')
	    {
	        document.getElementById('ctl00_ContentPlaceHolder1_qantity_nights').value = (dateDepday.getTime() - dateArrday.getTime()) / 24 / 60 / 60 / 1000;
	    }
	}
	
	setToWeekDayFormat(document.getElementById('ctl00_ContentPlaceHolder1_tbCheckOut'));
	setToWeekDayFormat(document.getElementById('ctl00_ContentPlaceHolder1_tbCheckIn'));
}


function createDateObject(dateString)
{
	
	dateString = prepareDateString(dateString)
	
	var arrDate=dateString.split(dtSeparator);
    var arrDateFormat=prepareDateString(dtFormat).split(dtSeparator);
		
    var strDay=arrDate[getArrPos(arrDateFormat, '%d')];
    var strMonth=arrDate[getArrPos(arrDateFormat, '%m')];
    var strYear=arrDate[getArrPos(arrDateFormat, '%Y')];
  
    if (strYear.length == 2) {strYear= '20' + strYear;}

	var dateObject = new Date(parseInt(strYear, 10), parseInt(strMonth, 10)-1, parseInt(strDay, 10), 12, 0,0,0); // JS counts months from 0 to 11

	return dateObject;
}

function insertDate(dateString,weekDay,inputName)
{
	document.getElementById(inputName).value = weekDay+' | '+dateString; //dateObject.getUTCDate()+dtSeparator+month+dtSeparator+dateObject.getUTCFullYear();
	document.getElementById(inputName).style.color='black';
}

// Tab Navigation
function menuClick(aobject,cid) 
{
	var tabActiveID 		= 'active';
	var storeActiveLayer 	= 'store_active_layer'; 	// hidden input element to store the active layer name -> IE 5.0 compatibility
	var args 				= menuClick.arguments;
	var layerDeactivateOrigin, menuDeactivate;
	
	// Active Button Style
	menuDeactivate = MM_findObj(tabActiveID); 		// get active tab
	menuDeactivate.id = "";		 					// kill active tab
	args[0].id = tabActiveID; 					// set new active tab
	
	// Active Layer Visibility
	layerDeactivateOrigin = MM_findObj(storeActiveLayer); 				// get active layer name
	MM_showHideLayers(layerDeactivateOrigin.value,'','hide'); 	// kill active layer
	MM_showHideLayers(args[1],'','show');						// show new active
	layerDeactivateOrigin.value = args[1];								// save new active layer name

	//document.getElementById('debug').innerHTML += ' layerDeactivateOrigin: '+layerDeactivateOrigin.value+'<br />';


	return expandcontent(cid, aobject);
}
	var previoustab="Hoteldetails"

function expandcontent(cid, aobject){
	if (document.getElementById){
	if (previoustab!="")
		document.getElementById(previoustab).style.display="none"
		document.getElementById(cid).style.display="block"
	previoustab=cid
	if (aobject.blur)
		aobject.blur()
	return false
	}
	else
	return true
}

// init Page
function pageInit(activeLayer,activeTab) 
{
	var storeActiveLayer = 'store_active_layer';
	
	// create handler
	var activeTabHandle = MM_findObj(activeTab);
	var storeActiveLayerHandle = MM_findObj(storeActiveLayer);

	// menu + active layer
	activeTabHandle.id = 'active';
	storeActiveLayerHandle.value = activeLayer
	MM_showHideLayers(activeLayer,'','show'); 
	
	// No JavaScript
	MM_showHideLayers('nojavascript','','hide');
	
	//document.getElementById('debug').innerHTML += ' storeActiveLayer: '+storeActiveLayer+'<br />';
}

window.onload=function()
{
	
}

function switchColor(field) {
	var var1 = document.getElementById(field).firstChild.style.color =  "#FFFFFF";
	var var2 = document.getElementById(field).firstChild.style.textDecoration =  "none";
}
function undoSwitchColor(field) {
	var var1 = document.getElementById(field).firstChild.style.color =  "#000000";
	var var2 = document.getElementById(field).firstChild.style.textDecoration =  "underline";
}

function setToWeekDayFormat(form_field)
{
	var date_string = form_field.value;
	
 	// check if allready filled
	if (date_string.indexOf(' | ') == 2) {return false;}
	
	// convert
	else if(isValidDate(date_string))
	{
	    var arrDate=prepareDateString(date_string).split(dtSeparator);
        var arrDateFormat=prepareDateString(dtFormat).split(dtSeparator);
	
  	    var strDay=arrDate[getArrPos(arrDateFormat, '%d')];
        var strMonth=arrDate[getArrPos(arrDateFormat, '%m')];
        var strYear=arrDate[getArrPos(arrDateFormat, '%Y')];
	
		//var date_components = date_string.split(dtSeparator); // seperate parts
		// debug(date_components[2]+' - '+date_components[1]+' - '+date_components[0]);
		var date_object = new Date(strYear,strMonth-1,strDay,12,0,0,0);
		// debug(date_object.toUTCString());
		var weekday = weekdays[date_object.getUTCDay()]; // Wochentag ermitteln
		
		insertDate(date_string,weekday,form_field.id); // in depday schreiben
		calculateDays();
		return true;
	}

}

function isValidDate(dtStr) // checks is in correct format and year must be at least current year
{
	
	if(dtStr != '')
	{
	
	  dtStr = prepareDateString(dtStr)
      
      var daysInMonth = DaysArray(12)
      var arrDate=dtStr.split(dtSeparator);
      var arrDateFormat=prepareDateString(dtFormat).split(dtSeparator);
  
      if (arrDate.length != 3 || arrDateFormat.length != 3)
      {
      alert(error_msg_wrongdate);
      return false;
      }
	
      var strDay=arrDate[getArrPos(arrDateFormat, '%d')];
      var strMonth=arrDate[getArrPos(arrDateFormat, '%m')];
      var strYear=arrDate[getArrPos(arrDateFormat, '%Y')];
      
      if (strYear.length == 2) {strYear= '20' + strYear;}

      month=parseInt(strMonth, 10)
      day=parseInt(strDay, 10)
      year=parseInt(strYear, 10)
      
      if (isNaN(month) || isNaN(day) || isNaN(year)) {return false;}
     
      // check year
	  var current_year = new Date();
	  current_year = current_year.getUTCFullYear();
	  if(year < current_year)
      {
	    alert(error_msg_wrongyear); 
	    return false;
	  }

      if (strMonth.length<1 || month<1 || month>12)
      {
	    alert(error_msg_wrongmonth);
		return false;
      }
      
      if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month])
      {
	    alert(error_msg_wrongday);
		return false;
      }
	return true;
	}
	return false;
}


function splitResult(SplitString, SplitVal)

{
var returnString = SplitString.split("|")
return returnString[SplitVal]
}

function ResetSearchValues()

{

push2Value(1,'ctl00_ContentPlaceHolder1_ddlNumRooms');
clearSelectList('ctl00_ContentPlaceHolder1_ddlCategory');
clearValue('ctl00_ContentPlaceHolder1_tbCity');
clearValue('ctl00_ContentPlaceHolder1_tbCheckOut');
push2Value(2,'ctl00_ContentPlaceHolder1_tbAdults');
push2Value(0,'ctl00_ContentPlaceHolder1_tbChild');
push2Value(0,'ctl00_ContentPlaceHolder1_tbCrib');
clearValue('ctl00_ContentPlaceHolder1_tbHotelName');
clearValue('qantity_nights');
MM_showHideLayers('search_box_hotel_box','','hide');
document.getElementById('ctl00_ContentPlaceHolder1_rlsearchoptions_0').checked = true;

}

function prepareDateString(dateString)
{
	if (dateString.indexOf(' | ') == 2) {dateString=dateString.substring(5);}
    dateString = dateString.replace(' г.','')
    if (Right(dateString,1) == '.') {dateString=dateString.replace(/.$/,'')}
    return dateString
}

function Right(str, n)
{
        if (n <= 0)     // Invalid bound, return blank string
           return "";
        else if (n > String(str).length)   // Invalid bound, return
           return str;                     // entire string
        else { // Valid bound, return appropriate substring
           var iLen = String(str).length;
           return String(str).substring(iLen, iLen - n);
        }
    }

    function getUrlSBBTimetable() {
        var arrival = "REQ0HafasSearchForw=0";
        if (document.getElementById('rltimetableoption_0').checked) {
            arrival = "REQ0HafasSearchForw=1";
        }
        var url = "http://fahrplan.sbb.ch/bin/query.exe/dn?REQ0JourneyStopsS0A=7&REQ0JourneyStopsZ0A=7&REQ0HafasSearchForw=1&start=&REQ0JourneyStopsS0G=" + document.getElementById('tbtimetablefrom').value + "&REQ0JourneyStopsZ0G=Zermatt&REQ0JourneyDate=" + document.getElementById('lbtimetabledate').innerHTML + "&REQ0JourneyTime=" + document.getElementById('tbtimetabletime').value + "&" + arrival;
        window.open(url, 'SBB', 'resizable=yes,location=yes,status=yes,menubar=yes,toolbar=yes,scrollbars=yes,width=1010,height=750');
    }

    
    
    //Modal Popup
    var idHotel;

    // Add click handlers for buttons to show and hide modal popup on pageLoad
    function pageLoad() {
        $addHandler(document, "keydown", OnKeyPress);
    }

    //function showModalPopupViaClient(ev) {
    function showModalPopupViaClient(idhotel, url) {
        //ev.preventDefault();
        idHotel = idhotel;

        var iframeModalPopup = document.getElementById('iframeModalPopup_' + idhotel);

        if (idhotel > 0) {
            iframeModalPopup.src = 'puDetails.aspx?idhotel=' + idhotel;
        }
        else {
            iframeModalPopup.src = url;
        }
        
        var modalPopupBehavior = $find('mpBehavior_' + idhotel);
        modalPopupBehavior.show();
    }

    function hideModalPopupViaClient(idhotel) {
        var modalPopupBehavior = $find('mpBehavior_' + idhotel);
        modalPopupBehavior.hide();
    }

    function OnKeyPress(args) {
        if (args.keyCode == Sys.UI.Key.esc) {
            $find("mpBehavior_" + idHotel).hide();
        }
    }