function left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}

function right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}

function swapDisplay(element1, element2){
	objElement1 = document.getElementById(element1);
	objElement2 = document.getElementById(element2);
	
	objElement1.style.display = 'none';	
	objElement2.style.display = 'block';	
}

function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp("(^|\s)"+searchClass+"(\s|$)");
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

function validateDates(){
	var checkinDate, checkoutDate;
	
	checkinDate = document.getElementById('checkin_year').value + '-' + document.getElementById('checkin_month').value + '-' + document.getElementById('checkin_day').value
	checkoutDate = document.getElementById('checkout_year').value + '-' + document.getElementById('checkout_month').value + '-' + document.getElementById('checkout_day').value


    if(!_isDate(document.getElementById('checkin_day').value,document.getElementById('checkin_month').value,document.getElementById('checkin_year').value))
    {
        
        alert("Check in date is invalid!");
        return false;    
    }
    else if(!_isDate(document.getElementById('checkout_day').value,document.getElementById('checkout_month').value,document.getElementById('checkout_year').value))
    {
        alert("Check out date is invalid!");
        return false; 
    }
    
         
	checkinDate2 = (new Date(document.getElementById('checkin_year').value, document.getElementById('checkin_month').value - 1, document.getElementById('checkin_day').value));
	checkoutDate2 = (new Date(document.getElementById('checkout_year').value, document.getElementById('checkout_month').value - 1, document.getElementById('checkout_day').value));

    var minDays=parseInt(document.forms["form_minDays"].rule.value);
    
	var d = new Date();
	var testDate=new Date();
	testDate.DateDiff({interval:"d",date1:checkinDate,date2:checkoutDate});

	if (testDate.difference < minDays){
		alert('Minimum of '+minDays+' nights stay - Please select a valid date range.');
		return false;
	} else if (checkinDate2 < new Date(d.getFullYear(), d.getMonth(), d.getDate())|| checkinDate2 > checkoutDate2){
		alert('Please select a valid date range.');
		return false;
	} else{
		return true;
	}
}

function _isDate(d,m,y)
{
        //alert()
        var dt = new Date();
        dt.setFullYear(y,m-1,d);
        //alert(dt.toDateString())
        if(dt.getDate()!=d)
        {   
           // alert(dt.getDate());
            return false;
            
        }
        else if(dt.getMonth()!=(m-1))
        {
          //  alert(dt.getMonth());
            return false;
            
        }
        else if(dt.getFullYear()!=y)
        {   
           // alert(dt.getFullYear());
            return false;
        }
        else
        {
            return true;
        }

    
}

Date.prototype.DateDiff=dateDiff;

var DayName=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];

var oneMinute=1000*60;

var intervalObject=new Object();
intervalObject["yyyy"]={units:1000*60*60*24*365,measure:"year"};
intervalObject["m"]={units:1000*60*60*24*30,measure:"month"};
intervalObject["d"]={units:1000*60*60*24,measure:"day"};
intervalObject["Q"]={units:intervalObject["m"].units*3,measure:"quarter"};
intervalObject["H"]={units:oneMinute*60,measure:"hour"};
intervalObject["N"]={units:oneMinute,measure:"minute"};
intervalObject["S"]={units:1000,measure:"second"};

function dateDiff(dateAddObj){
	this.interval=dateAddObj.interval;
	this.date1=dateAddObj.date1;
	this.date2=dateAddObj.date2;
	this.calculate=calculate;
	this.calculate();
}

function calculate(){
	var paramDate1=new String(this.date1);
	splitDate1=paramDate1.split("-");
	paramDateYear1=splitDate1[0];
	paramDateMonth1=splitDate1[1]-1;
	paramDateDay1=splitDate1[2];
	if(paramDateMonth1>12){
		alert("Invalid Month!");
		return false;
	}
	if(paramDateDay1>31){
		alert("Invalid Day!");
		return false;
	}
	
	
	var paramDate2=new String(this.date2);
	splitDate2=paramDate2.split("-");
	paramDateYear2=splitDate2[0];
	paramDateMonth2=splitDate2[1]-1;
	paramDateDay2=splitDate2[2];
	if(paramDateMonth2>12){
		alert("Invalid Month!");
		return false;
	}
	if(paramDateDay2>31){
		alert("Invalid Day!");
		return false;
	}
	
			
	var paramDate1Object=new Date(paramDateYear1,paramDateMonth1,paramDateDay1);
	paramDate1Object.setHours(0);
	paramDate1Object.setMinutes(0);
	paramDate1Object.setSeconds(0);
	//paramDate1Object.getTimezoneOffset() * oneMinute;
	var paramDate1ObjectTime=paramDate1Object.getTime();
	
	
	var paramDate2Object=new Date(paramDateYear2,paramDateMonth2,paramDateDay2);
	paramDate2Object.setHours(0);
	paramDate2Object.setMinutes(0);
	paramDate2Object.setSeconds(0);
	var paramDate2ObjectTime=paramDate2Object.getTime();
	
	if(paramDate2Object>paramDate1Object){
		DSTAdjust=(paramDate2Object.getTimezoneOffset() - paramDate1Object.getTimezoneOffset()) * oneMinute;
		
	}
	else{
		DSTAdjust=(paramDate1Object.getTimezoneOffset() - paramDate2Object.getTimezoneOffset()) * oneMinute;
	}
	
	if(typeof intervalObject[this.interval]!="undefined"){
		if(typeof intervalObject[this.interval].units=="undefined"){
			alert("Interval is invalid!");
			return false;
		}
		
		var diff=Math.abs(paramDate2ObjectTime-paramDate1ObjectTime) - DSTAdjust;
		var timeDiff=Math.floor(diff/intervalObject[this.interval].units);
		if(timeDiff>1){
			var rname=intervalObject[this.interval].measure + "s";
		}
		else{
			var rname=intervalObject[this.interval].measure;
		}
		
		this.difference=parseInt(timeDiff);
	}
	else{
		this.difference="Wrong format of interval!";
	
	}
}
	
function isValidDate(date){
	var testDate = new String(date);
	var regex = /(^\d{1,2})\/(\d{1,2})\/(\d{4,4})|(^\d{1,2})\/(\d{1,2})\/(\d{2,2})/;
	
	if (regex.test(testDate)){
		var month = new String(RegExp.$2);
		var day = new String(RegExp.$1);
		var year = new String(RegExp.$3);
		
		if (month.length == 0){
			month = new String(RegExp.$5);
			day = new String(RegExp.$4);
			year = new String(RegExp.$6);
		}
		
		var today = new Date();
		var thisYear = new String(today.getFullYear());
		
		if (year.length == 2){					
			if (year > 50){
				year = String(Number(thisYear.substring(0,2))-1) + year;
			} else{
				year = thisYear.substring(0,2) + year;
			}
		}
		
		if (month < 1 || month > 12){return false;}
		if (day < 1 || day > 31){return false;}
		if ((month==4 || month==6 || month==9 || month==11) && day>30){return false;}

		if (month == 2){ 
			var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
			
			if (day>29 || (day==29 && !isleap)){
				return false;
			}
		}		
		
		if ((Number(year) < Number(thisYear) - 250) || (Number(year) > Number(thisYear) + 250)){return false;}
		return true;
	}
	return false;
}

function sIFR_Init() {
	if(typeof sIFR == "function"){
		/* HOME PAGE HOT DEALS */
		sIFR.replaceElement(named({sSelector:"#homeHotDeals div#tagLine", sColor:"#ffffff", sLinkColor:"#ffffff", sBgColor:"#970063", sHoverColor:"#c699b6", sWmode:"transparent", sFlashSrc:"/flash/sIFR_HelveticaNeueMedium.swf"})); //, sFlashVars:"underline=true"
		sIFR.replaceElement(named({sSelector:"#homeHotDeals #priceBox div#amount, td.details #priceBox div#amount", sColor:"#ffffff", sLinkColor:"#ffffff", sBgColor:"#ac3382", sHoverColor:"#ffffff", sWmode:"transparent", sFlashSrc:"/flash/sIFR_HelveticaNeueBold.swf"}));
		sIFR.replaceElement(named({sSelector:"#homeHotDeals #priceBox div#prefix, #homeHotDeals #priceBox div#suffix, td.details #priceBox div#prefix, td.details #priceBox div#suffix", sColor:"#ffffff", sLinkColor:"#ffffff", sBgColor:"#ac3382", sHoverColor:"#ffffff", sWmode:"transparent", sFlashSrc:"/flash/sIFR_HelveticaNeueRoman.swf"}));
		sIFR.replaceElement(named({sSelector:"#homeHotDeals #priceBox div#fineprint", sColor:"#ffffff", sLinkColor:"#970063", sBgColor:"#ac3382", sHoverColor:"#ffffff", sWmode:"transparent", sFlashSrc:"/flash/sIFR_HelveticaNeueLight.swf"}));
		//sIFR.replaceElement(named({sSelector:"#homeHotDeals div#desc", sColor:"#ffffff", sLinkColor:"#ffffff", sBgColor:"#ffffff", sHoverColor:"#ffffff", sWmode:"transparent", sFlashSrc:"/flash/sIFR_HelveticaNeueLight.swf"}));
		
		sIFR.replaceElement(named({sSelector:"#hotDeal h3", sColor:"#ffffff", sLinkColor:"#ffffff", sBgColor:"#970063", sHoverColor:"#ffffff", sWmode:"transparent", sFlashSrc:"/flash/sIFR_HelveticaNeueMedium.swf"}));
		//sIFR.replaceElement(named({sSelector:"#hotDeal div#desc", sColor:"#ffffff", sLinkColor:"#ac3382", sBgColor:"#970063", sHoverColor:"#ffffff", sWmode:"transparent", sFlashSrc:"/flash/sIFR_HelveticaNeueRoman.swf"}));
		sIFR.replaceElement(named({sSelector:"#hotDeal #validity div#valPrefix", sColor:"#ffffff", sLinkColor:"#970063", sBgColor:"#ac3382", sHoverColor:"#ffffff", sWmode:"transparent", sFlashSrc:"/flash/sIFR_HelveticaNeueLight.swf", sFlashVars:"textalign=center"}));
		sIFR.replaceElement(named({sSelector:"#hotDeal #validity div#dates", sColor:"#ffffff", sLinkColor:"#970063", sBgColor:"#ac3382", sHoverColor:"#ffffff", sWmode:"transparent", sFlashSrc:"/flash/sIFR_HelveticaNeueMedium.swf", sFlashVars:"textalign=center"}));
		
	};
	return;
}

function curvyCorners_Init() {
	pgHomeHotDealsPrice = {
      tl: { radius: 5 },
      tr: { radius: 5 },
      bl: { radius: 5 },
      br: { radius: 5 },
      antiAlias: true,
      autoPad: false
    }
	pgHotDealsPrice = {
      tl: { radius: 8 },
      tr: { radius: 8 },
      bl: { radius: 8 },
      br: { radius: 8 },
      antiAlias: true,
      autoPad: false
    };
	
	pgHotDealsValidity = pgHotDealsPrice;
	pgHotDealsBookNow = pgHomeHotDealsPrice;
	
	if (document.getElementById('hotDeal')) {
	    var objPgHotDealsPrice = document.getElementById("priceBox");
	    var CrvCrnPrice = new curvyCorners(pgHotDealsPrice, objPgHotDealsPrice);
	    CrvCrnPrice.applyCornersToAll();

	    var objPgHotDealsValidity = document.getElementById("validity");
	    var CrvCrnValidity = new curvyCorners(pgHotDealsValidity, objPgHotDealsValidity);
	    CrvCrnValidity.applyCornersToAll();
		
	    var objPgHotDealsBookNow = document.getElementById("bookNow");
	    var CrvCrnBookNow = new curvyCorners(pgHotDealsBookNow, objPgHotDealsBookNow);
	    CrvCrnBookNow.applyCornersToAll();
	}
	else {
	    var objPgHomeHotDealsPrice = document.getElementById("priceBox");
	    var cornersObj = new curvyCorners(pgHomeHotDealsPrice, objPgHomeHotDealsPrice);
	    cornersObj.applyCornersToAll();
	}

}



function contentInit() {
	sIFR_Init();
	if (document.getElementById('priceBox')) {
		curvyCorners_Init();
	}
	// debugOut();
}

try { // Prevent IE6 CSS Rollover images flickering
  document.execCommand('BackgroundImageCache', false, true);
} catch(e) {}

if (document.addEventListener) { 
	document.addEventListener("DOMContentLoaded", contentInit, false);
}
else {
	window.onload = contentInit; 
}


