
function fvalidate (object, propName) {
   
      return typeof object[propName] != "undefined"; 
      
 } 


function resize() {
	var	height = $(window).height();
	if ($.browser.msie) height = document.documentElement.clientHeight;
	if (!$.browser.msie) height = window.innerHeight;
	var width = $('body').width();
	try {
	    $('#logoutbutton').css('right', width * 0.07)
	} catch(e){}

	setCookie("BrowserWidth", width, 1);
	setCookie("BrowserHeight", height, 1);

	$('#content').height(height - 88 - 28);
	$('#contentcontent').width(0.95 * width - 211);


	try {
	    $('#items').height(height - 88 - 28 - 140);		
	}
	catch (e) {
	}
	try {
	    $('#hotelview').height(height - 88 - 28 - 101 - 50);		
	}
	catch (e) {
	}
	try {
		extraResize();
	}
	catch (e) {
	}

}

var extraLoads = new Array();

function addLoadFunction(thefunction) {
    $(thefunction);	
}


function unload()
{


}

function load() {
	resize();

	if (fvalidate(window,'extraLoad')) {
		extraLoad();
	}
		
	for (var i = 0; i < extraLoads.length; i++)
	{
		extraLoads[i]();
	}
	


}


function AlertPopup(strLink, strMessage) {
	if (window.confirm(strMessage)) {
		window.location = strLink;
	}
}
function CheckTemplate(strLink) {
	if (window.confirm("Are you sure you want to edit this template ?")) {
		window.location = strLink;
	}
}// getBrowserWidth is taken from The Man in Blue Resolution Dependent Layout Script
// http://www.themaninblue.com/experiment/ResolutionLayout/
function EndDate(iNumberOfDays) {

		AddDate(dtmDropOff,iNumberOfDays, '-', "enddate");

}
function AddDate(currentDate, iNumberOfDays, sep, destination) {
	
	var nDate =	 currentDate.addDays(iNumberOfDays);

	document.getElementById(destination).innerHTML = nDate.format("%DD"+sep+"%MMM"+sep+"%YYYY");
}
function AddDate2(currentDate, iNumberOfDays, fstring, destination) {
	
	var nDate =	 currentDate.addDays(iNumberOfDays);

	document.getElementById(destination).innerHTML = nDate.format(fstring).toUpperCase();
}
function DropOffDate(iNumberOfDays) {
		
	AddDate2(dtmDropOff,iNumberOfDays, '%DDD %DD%MMM%YYYY', "dropoffdate");

}

function getStyle(el, style) {
	if (!document.getElementById) {
		return;
	}
	var value = el.style[toCamelCase(style)];
	if (!value) {
		if (document.defaultView) {
			value = document.defaultView.getComputedStyle(el, "").getPropertyValue(style);
		} else {
			if (el.currentStyle) {
				value = el.currentStyle[toCamelCase(style)];
			}
		}
	}
	return value;
}


/***
 **
 ** Cookies
 **
 ***/


function setCookie(c_name, value, expiredays) {
	var exdate = new Date();
	exdate.setDate(exdate.getDate() + expiredays);
	document.cookie = c_name + "=" + escape(value) + ((expiredays === null) ? "" : ";expires=" + exdate);
}
function getCookie(c_name) {
	if (document.cookie.length > 0) {
		c_start = document.cookie.indexOf(c_name + "=");
		if (c_start != -1) {
			c_start = c_start + c_name.length + 1;
			c_end = document.cookie.indexOf(";", c_start);
			if (c_end == -1) {
				c_end = document.cookie.length;
			}
			return unescape(document.cookie.substring(c_start, c_end));
		}
	}
	return null;
}


/** toCamelCase(input)
 * Converts string input to a camel cased version of itself.
 * For example:
 * toCamelCase("z-index"); // returns zIndex
 * toCamelCase("border-bottom-style"); // returns borderBottomStyle.
 */
function toCamelCase(s) {
	for (var exp = toCamelCase.exp; exp.test(s); s = s.replace(exp, RegExp.$1.toUpperCase())) {
	}
	return s;
}
toCamelCase.exp = /-([a-z])/;



/* inPoly()
Finds if a given point is within a polygon.

Based on Bob Stein's inpoly() function for C.
http://home.earthlink.net/~bobstein/inpoly/

Modified for JavaScript by Scott Andrew LePera.

Parameters:
poly: array containing x/y coordinate pairs that
  describe the vertices of the polygon. Format is
  indentical to that of HTML image maps, i.e. [x1,y1,x2,y2,...]
  
px: the x-coordinate of the target point.

py: the y-coordinate of the target point.

Return value:
true if the point is within the polygon, false if not.
*/

function inPoly(poly, px, py) {
	var npoints = poly.length; // number of points in polygon
	var xnew, ynew, xold, yold, x1, y1, x2, y2, i;
	var inside = false;
	var npointsdiv2 = npoints / 2;
	if (npointsdiv2 < 3) { // points don't describe a polygon
		return false;
	}
	xold = poly[npoints - 2];
	yold = poly[npoints - 1];
	for (i = 0; i < npoints; i = i + 2) {
		xnew = poly[i];
		ynew = poly[i + 1];
		if (xnew > xold) {
			x1 = xold;
			x2 = xnew;
			y1 = yold;
			y2 = ynew;
		} else {
			x1 = xnew;
			x2 = xold;
			y1 = ynew;
			y2 = yold;
		}
		if ((xnew < px) == (px <= xold) && ((py - y1) * (x2 - x1) < (y2 - y1) * (px - x1))) {
			inside = !inside;
		}
		xold = xnew;
		yold = ynew;
	}
	return inside;
}










function scrollDivDown(item, distance)
{
	document.getElementById(item).scrollTop += distance;
}
function scrollDivUp(item, distance)
{
	document.getElementById(item).scrollTop -= distance;
}
function scrollDivAnimatedUp(item,period, distance)
{
	var nitem = item +  'layer';
	
	var b=period/4;
	var m = distance;
	{
	for (var i = b*0.1; i < m*b; i+=b/20)
	{
		setTimeout("var speed = "+i+"/"+b+"; document.getElementById('"+nitem+"').style.top = (document.getElementById('"+nitem+"').style.top.replace('px','')  -  speed) + 'px';",i);
	}
	}
	{
	for (var j = b*0.1; j < m*b; j+=b/20)
	{
		setTimeout("var speed = ("+m*b+"-"+j+")/"+b+"; document.getElementById('"+nitem+"').style.top = (document.getElementById('"+nitem+"').style.top.replace('px','')  -  speed) + 'px';",j+m*b);
	}
	}
}
function scrollDivAnimatedDown(item,period, distance)
{
	var nitem = item +  'layer';
	
	var b=period/4;
	var m = distance;
	for (var i = b*0.1; i < m*b; i+=b/20)
	{
		setTimeout("var speed = "+i+"/"+b+"; document.getElementById('"+nitem+"').style.top = (document.getElementById('"+nitem+"').style.top.replace('px','')  -  (-speed)) + 'px';",i);
	}
	
	for (var j = b*0.1; j < m*b; j+=b/20)
	{
		setTimeout("var speed = ("+m*b+"-"+j+")/"+b+"; document.getElementById('"+nitem+"').style.top = (document.getElementById('"+nitem+"').style.top.replace('px','')  -  (-speed)) + 'px';",j+m*b);
	}
}

