/** Requires: lightBoxCommon.js **/
var backFillerPresent	= false;
var keepPosInit=new Object();

function tgGetBackFillerDivHtml () {
	//return nothing - just keep for back compat
	return "";
}

function tgInitBackFiller (closeOnClick) {
	var bfStyle;
	if (!backFillerPresent) {
		backFillerPresent = true;
		var backFiller = document.createElement("div");
		backFiller.id="tgBackFiller";
		bfStyle = backFiller.style;
		bfStyle.backgroundColor="#000000";
		bfStyle.height="100%";
		bfStyle.width="100%";
		bfStyle.top="0px";
		bfStyle.left="0px";
		bfStyle.zIndex=95;
		bfStyle.position="absolute";
		bfStyle.visibility="hidden";
		bfStyle.display="none";
		document.body.appendChild(backFiller);
		if (closeOnClick) addEventHandler (backFiller, "click", tgCloseHtmlLightBox);
	} else
		bfStyle = getStyleObject ("tgBackFiller")
		
	var pageSizeArr = tgGetPageSize();
	bfStyle.width = pageSizeArr[0] + 0 + 'px';
	bfStyle.height = pageSizeArr[1] + 0 + 'px';
	changeOpacity (50, "tgBackFiller");
}

function tgShowObjectWithBackFiller (objID) {
	hideDropDowns ();
	hideEmbedObjs ();
	showObject ("tgBackFiller");
	showObject (objID);
}

function tgHideObjectWithBackFiller (objID) {
	hideObject (objID);
	hideObject ("tgBackFiller");
	showDropDowns ();
	showEmbedObjs ();
}

function tgGetScrollPos () {
	return getScrollPos();
}

function tgGetPageSize(){
	return getPageSize();
}

var justHiddenDDs = new Array();
function hideDropDowns(){
	var ddElems = getElemByTagName("select");
	var oStyle;
	for (var i=0; i < ddElems.length; i++) {
		if (ddElems[i].id != null && ddElems[i].id != 'unknown') {
			oStyle = getStyleObject(ddElems[i].id);
			if (oStyle) {
				justHiddenDDs.push (ddElems[i].id);
				oStyle.visibility = "hidden";
			}
		}
	}
}

function showDropDowns(){
	for (var i=0; i < justHiddenDDs.length; ++i)
		getStyleObject (justHiddenDDs[i]).visibility = "visible";
}

function showEmbedObjs(){
	var embedObjs = getElemByTagName("object");
	for (var i = 0; i < embedObjs.length; i++)
		embedObjs[i].style.visibility = "visible";

	embedObjs = getElemByTagName("embed");
	for (var i = 0; i < embedObjs.length; i++)
		embedObjs[i].style.visibility = "visible";
}

function hideEmbedObjs(){
	var embedObjs = getElemByTagName("object");
	for (var i = 0; i < embedObjs.length; i++)
		embedObjs[i].style.visibility = "hidden";

	embedObjs = getElemByTagName("embed");
	for (var i = 0; i < embedObjs.length; i++)
		embedObjs[i].style.visibility = "hidden";
}

function fadeEffect (id, opacStart, opacEnd, millisec) {
    var speed = Math.round(millisec / 100);
    var timer = 0;

    if (opacStart > opacEnd) {
        for (i = opacStart; i >= opacEnd; i--) {
            setTimeout("changeOpacity(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    } else if(opacStart < opacEnd) {
        for (i = opacStart; i <= opacEnd; i++) {
            setTimeout("changeOpacity(" + i + ",'" + id + "')",(timer * speed));
            timer++;
        }
    }
}
function tgCenterObject(divId, divW, divH) {
	var pageSizeArr	= tgGetPageSize();
	var scrollPos	= tgGetScrollPos();
	var divStyle 	= getStyleObject (divId);
	if (isNaN(divW)) divW = parseInt(divStyle.width,10);
	if (isNaN(divH)) divH = parseInt(divStyle.height,10);
	var divL 		= (pageSizeArr[2] - divW) / 2;
	var divT 		= (pageSizeArr[3] - divH) / 2 + scrollPos[1];/*position: absolute*/

	if (divL < 0) divL = 0;
	if (divT < 0) divT = 0;

	divStyle.width	= divW + 'px';
	divStyle.height	= divH + 'px';
	divStyle.left	= divL + 'px';
	divStyle.top	= divT + 'px';
}

//params - div to position, width, height, div to position based on, offset L, offset T
function tgPlaceObjectNear(posDivID, divW, divH, relDivID, offsetLeft, offsetTop) {
	var posDiv = document.getElementById(posDivID);
	var relDiv = document.getElementById(relDivID);
	var relPos = getElementOffsets(relDiv);
	
	var divStyle 	= getStyleObject (posDivID);
	if (isNaN(divW)) divW = parseInt(divStyle.width,10);
	if (isNaN(divH)) divH = parseInt(divStyle.height,10);
	
	posDiv.style.width	= divW + 'px';
	posDiv.style.height	= divH + 'px';
	posDiv.style.left	= relPos[0] + offsetLeft + 'px';
	posDiv.style.top	= relPos[1] + offsetTop + 'px';
}
var backFillerTagged = false;
var tgLastOpenDiv;
function tgInitHtmlLightBox () {
//keep for back compat - all functionality made dynamic on call to show box, no init needed now
}
function tgHtmlLightBox (masterDivId, divW, divH) {
	tgHtmlLightBoxOpt (masterDivId, divW, divH, true, null);
}
//posObj has 3 members - relID (id of div to position by, left (offset to left of rel div), top
function tgHtmlLightBoxOpt (masterDivId, divW, divH, closeOnClick, posObj) {
	tgInitBackFiller (closeOnClick);
	tgLastOpenDiv = masterDivId;
	var masterDiv = getElemById (masterDivId);
	if (posObj != null) {
		tgPlaceObjectNear(masterDivId, divW, divH, posObj.relID, posObj.left, posObj.top);
		if (!keepPosInit[masterDivId]) {
			var tFunc = function () {tgPlaceObjectNear(masterDivId, 'xx', 'xx', posObj.relID, posObj.left, posObj.top); tgInitBackFiller(false); };
			addEventHandler (window, "resize", tFunc);
			keepPosInit[masterDivId] = true;
		}
	} else {

		tgCenterObject (masterDivId, divW, divH);
		if (!keepPosInit[masterDivId]) {
			var tFunc = function () {tgCenterObject(masterDivId, 'xx', 'xx');};
			addEventHandler (window, "scroll", tFunc);
			tFunc = function () {tgCenterObject(masterDivId, 'xx', 'xx'); tgInitBackFiller(false); };
			addEventHandler (window, "resize", tFunc);
			keepPosInit[masterDivId] = true;
		}
	}
	tgShowObjectWithBackFiller (masterDivId);
}
function tgCloseHtmlLightBox () {
	tgHideObjectWithBackFiller (tgLastOpenDiv);
}
function tgCloseHtmlLightBoxWithoutBackFiller () {
	hideObject (tgLastOpenDiv);
	//hideObject ("tgBackFiller");
	showDropDowns ();
	showEmbedObjs ();
}
function presetNewSearchLightBoxData() {
	if(document.getElementById("NewHotelSearch")){
		document.getElementById("NewHotelSearch").style.height='250px';
	}

	if(document.getElementById("newSearchValidationErrors")){
		document.getElementById("newSearchValidationErrors").style.display = "none";
	}
	changeSearchType(document.getElementById('searchType').value,'')

}

