var dragapproved = false;
var z_sel;

//'Roll over for images...
function swap(objImage) {
	if (objImage.src.indexOf("_hi") > 0) {
		document.images[eval("'" + objImage.name + "'")].src = objImage.src.replace("_hi", "_lo");
	} else {
		document.images[eval("'" + objImage.name + "'")].src = objImage.src.replace("_lo", "_hi");
	}
}

function getScrollY() {
  var scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
  } else if( document.body && (document.body.scrollTop) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
  } else if( document.documentElement && (document.documentElement.scrollTop) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
  }
  return [scrOfY ];
}

function showAccomDetails(strItemCode) {
	var divPopup = document.getElementById("layer1");
	var strHeadHTML = document.getElementById("strHeadHTML");
	if (strItemCode == "") {
		alert("No item selected");
		return;
	}
	
	document.getElementById("winhead").innerHTML = strHeadHTML.innerHTML;
	document.getElementById("content").innerHTML = document.getElementById("strItemHTML_" + strItemCode).innerHTML
	
	//Colour tabs correctly...
	if (document.getElementById("view_map")) {
		document.getElementById("view_cst").style.backgroundColor = "CCCC66";
		document.getElementById("view_cst_tbl").style.backgroundColor = "CCCC66";
		document.getElementById("view_map").style.backgroundColor = "999933";
	}
	
	//'Check how far page is scrolled...
	var scrOfY = 0;
	if( typeof( window.pageYOffset ) == 'number' ) {
	//Netscape compliant
	scrOfY = window.pageYOffset;
	} else if( document.body && (document.body.scrollTop) ) {
	//DOM compliant
	scrOfY = document.body.scrollTop;
	} else if( document.documentElement && (document.documentElement.scrollTop) ) {
	//IE6 standards compliant mode
	scrOfY = document.documentElement.scrollTop;
	}
	divPopup.style.top = (scrOfY + 30) + "px";
	divPopup.style.display = "";
}

function showHTML(strHTMLName) {
	if (document.getElementById("view_map")){
		document.getElementById("view_cst").style.backgroundColor = "999933";
		document.getElementById("view_cst_tbl").style.backgroundColor = "999933";
		document.getElementById("view_map").style.backgroundColor = "CCCC66";
	}
	document.getElementById("content").innerHTML = document.getElementById(strHTMLName).innerHTML;
}

function hideHTML(strHTMLName) {
	document.getElementById("layer1").style.display='none';
	return;
}

function move(mEvent) {
	if (!mEvent) var mEvent = window.event;
	if (mEvent.button) {
		if (mEvent.button==1&&dragapproved) {
			z_sel.style.left = (temp1 + mEvent.clientX - x) + "px";
			z_sel.style.top = (temp2 + mEvent.clientY - y) + "px";
			return false;
		}
	} else {
		if (mEvent.which==1&&dragapproved) {
			z_sel.style.left = (temp1 + mEvent.pageX - x) + "px";
			z_sel.style.top = (temp2 + mEvent.pageY - y) + "px";
			return false;
		}
	}
}

function findElement(obj) {
	if (obj.id == "layer1" || obj.id == "layer2") return obj;
	if (!obj.parentNode.tagName) return false;
	if (obj.parentNode.tagName == "HTML") {
		return obj;
	} else {
		return findElement(obj.parentNode);
	}
}

function getPosLeft(obj) {
  var curleft = 0;
  if(obj.offsetParent)
  while(1) {
    curleft += obj.offsetLeft;
    if(!obj.offsetParent)
    break;
    obj = obj.offsetParent;
    }
  else if(obj.x)
  curleft += obj.x;
  return curleft;
}

function getPosTop(obj) {
  var curtop = 0;
  if(obj.offsetParent)
  while(1) {
    curtop += obj.offsetTop;
    if(!obj.offsetParent)
    break;
    obj = obj.offsetParent;
    }
  else if(obj.y)
  curtop += obj.y;
  return curtop;
}

function drags(e) {
	if (!e) var e = window.event;
	
	// Internet Explorer
	if (e.srcElement) {
		objElement = e.srcElement;
	}
	// Netscape and Firefox
	else if (e.target) {
		objElement = e.target;
	}
	
	z_sel = findElement(objElement);
	
	if (z_sel.className == "winDetails") {
		if (getPosLeft(z_sel) == 0 && getPosTop(z_sel) == 0) {
			z_sel.style.left = "30px";
			z_sel.style.top = "90px";
		}
		dragapproved=true;
		temp1 = getPosLeft(z_sel);
		temp2 = getPosTop(z_sel);
		
		if (e.button) {
			// Internet Explorer
			x = e.clientX;
			y = e.clientY;
			
			if (e.button==1) { //left click
				document.body.onmousemove = move;
			}
		} else {
			// Netscape and Firefox
			x = e.pageX;
			y = e.pageY;
			
			if (e.which==1) { //left click
				document.body.onmousemove = move;
			}
		}
	}
}


document.onmousedown = drags;
document.onmouseup = new Function("dragapproved=false;")


//'Opens new window and prints it out ...
function printOut(strHTML) {
	thisWindow = window.open("printout.asp?strHTML=" + escape(strHTML), "printWindow","toolbar=no,status=no,menubar=no,scrollbars=yes, resizable=no,width=200,height=200,left=50,top=50");
	thisWindow.focus();
}

//'Reduces font size for 800 x 600 resolution...
function screenAdjust() {
	if (screen.width <= 800) {
		topbar.style.fontSize = "10pt";
	}
}

//'Pops up callme window...
function showCallme(strRootDir) {
	callmeWindow = window.open(strRootDir + "/adventure_holidays/callme.asp", "call_me","toolbar=no,status=no,menubar=no,scrollbars=no, resizable=yes,width=400,height=280,left=50,top=50");	
	callmeWindow.focus();
}

function right(str, n) {
	if (n <= 0)     // Invalid bound, return blank string
		return 0;
	//else if (n > String(str).length)   // Invalid bound, return
	//	return 0;                     // entire string
	else { // Valid bound, return appropriate substring
		var iLen = String(str).length;
		if ((iLen - n) > 0) {
			return String(str).substring(iLen, iLen - n);
		} else {
			return 0;
		}
	}
}

function FormatNumber(num,decimalNum,bolLeadingZero,bolParens,bolCommas) {
/**********************************************************************
	IN:
		NUM - the number to format
		decimalNum - the number of decimal places to format the number to
		bolLeadingZero - true / false - display a leading zero for
										numbers between -1 and 1
		bolParens - true / false - use parenthesis around negative numbers
		bolCommas - put commas as number separators.
 
	RETVAL:
		The formatted number!
 **********************************************************************/
 
    if (isNaN(parseInt(num))) return "NaN";

	var tmpNum = num;
	var iSign = num < 0 ? -1 : 1;		// Get sign of number
	
	// Adjust number so only the specified number of numbers after
	// the decimal point are shown.
	tmpNum *= Math.pow(10,decimalNum);
	tmpNum = Math.round(Math.abs(tmpNum))
	tmpNum /= Math.pow(10,decimalNum);
	tmpNum *= iSign;					// Readjust for sign
	
	
	// Create a string object to do our formatting on
	var tmpNumStr = new String(tmpNum);

	// See if we need to strip out the leading zero or not.
	if (!bolLeadingZero && num < 1 && num > -1 && num != 0)
		if (num > 0)
			tmpNumStr = tmpNumStr.substring(1,tmpNumStr.length);
		else
			tmpNumStr = "-" + tmpNumStr.substring(2,tmpNumStr.length);
	
	// See if we need to put in the commas
	if (bolCommas && (num >= 1000 || num <= -1000)) {
		var iStart = tmpNumStr.indexOf(".");
		if (iStart < 0)
			iStart = tmpNumStr.length;

		iStart -= 3;
		while (iStart >= 1) {
			tmpNumStr = tmpNumStr.substring(0,iStart) + "," + tmpNumStr.substring(iStart,tmpNumStr.length)
			iStart -= 3;
		}		
	}

	// See if we need to use parenthesis
	if (bolParens && num < 0)
		tmpNumStr = "(" + tmpNumStr.substring(1,tmpNumStr.length) + ")";
	
	if (tmpNumStr.indexOf(".") > -1) {
		if (tmpNumStr.indexOf(".") == tmpNumStr.length - 2) {
			return tmpNumStr + "0";
		} else {
			return tmpNumStr;
		}
	} else {
		return tmpNumStr + ".00";
	}
}

function clearPounds(strAmount) {
	return parseFloat(strAmount.replace(",", "").replace("£", ""));
}

//Preload images for flash movie...
function preloadImages() { 
	var ROOTPATH_IMAGES = "http://www.hiddengambia.com/adventure_holidays/video/images/hi/";
	var preImages = new Array();
	var arrImages = new Array();
	arrImages[0] = ROOTPATH_IMAGES + 	"bsc_villagekids.jpg";
	arrImages[1] = ROOTPATH_IMAGES + 	"cst_fishing_boat.jpg";
	arrImages[2] = ROOTPATH_IMAGES + 	"cst_tanji_beach.jpg";
	arrImages[3] = ROOTPATH_IMAGES + 	"fot_beach_fishing.jpg";
	arrImages[4] = ROOTPATH_IMAGES + 	"cst_bijilo_beach.jpg";
	arrImages[5] = ROOTPATH_IMAGES + 	"gen_river_palmtrees.jpg";
	arrImages[6] = ROOTPATH_IMAGES + 	"ten_wandi_search.jpg";
	arrImages[7] = ROOTPATH_IMAGES + 	"bds_goliath_heron.jpg";
	arrImages[8] = ROOTPATH_IMAGES + 	"gen_cattle.jpg";
	arrImages[9] = ROOTPATH_IMAGES + 	"bds_giant_kingfisher.jpg";
	arrImages[10] = ROOTPATH_IMAGES + 	"bds_carmine_bee_eater.jpg";
	arrImages[11] = ROOTPATH_IMAGES + 	"bds_little_bee_eaters.jpg"; 
	arrImages[12] = ROOTPATH_IMAGES + 	"bds_woodland_kingfisher.jpg"; 
	arrImages[13] = ROOTPATH_IMAGES + 	"bds_shikra.jpg"; 
	arrImages[14] = ROOTPATH_IMAGES + 	"sgh_pool_flower.jpg"; 
	arrImages[15] = ROOTPATH_IMAGES + 	"hib_pool.jpg"; 
	arrImages[16] = ROOTPATH_IMAGES + 	"par_riverhuts.jpg"; 
	arrImages[17] = ROOTPATH_IMAGES + 	"far_restaurant.jpg"; 
	arrImages[18] = ROOTPATH_IMAGES + 	"fot_outside.jpg"; 
	arrImages[19] = ROOTPATH_IMAGES + 	"bob_platform.jpg"; 
	arrImages[20] = ROOTPATH_IMAGES + 	"gen_bradt_guide.jpg"; 
	arrImages[21] = ROOTPATH_IMAGES + 	"saf_sideways.jpg"; 
	arrImages[22] = ROOTPATH_IMAGES + 	"saf_mark_fishing.jpg";
	arrImages[23] = ROOTPATH_IMAGES + 	"saf_salif_beds.jpg"; 
	arrImages[24] = ROOTPATH_IMAGES + 	"saf_seats_up.jpg"; 
	arrImages[25] = ROOTPATH_IMAGES + 	"ten_safari_queen_bambo.jpg"; 
	arrImages[26] = ROOTPATH_IMAGES + 	"bsc_lady_hippo_in_motion.jpg"; 
	arrImages[27] = ROOTPATH_IMAGES + 	"hip_top_deck.jpg"; 
	arrImages[28] = ROOTPATH_IMAGES + 	"hip_bottom_deck.jpg"; 
	arrImages[29] = ROOTPATH_IMAGES + 	"bsc_hippo_jetty.jpg"; 
	arrImages[30] = ROOTPATH_IMAGES + 	"bsc_hippo_jetty2.jpg"; 
	arrImages[31] = ROOTPATH_IMAGES + 	"bsc_safari_tent.jpg";
	arrImages[32] = ROOTPATH_IMAGES + 	"bsc_safari_tent5.jpg";
	arrImages[33] = ROOTPATH_IMAGES + 	"bsc_hut.jpg";
	arrImages[34] = ROOTPATH_IMAGES + 	"bsc_pool_toubabs.jpg";
	arrImages[35] = ROOTPATH_IMAGES + 	"bsc_tiger1.jpg";
	arrImages[36] = ROOTPATH_IMAGES + 	"bsc_tiger2.jpg";
	arrImages[37] = ROOTPATH_IMAGES + 	"bsc_tiger3.jpg";
	arrImages[38] = ROOTPATH_IMAGES + 	"bsc_tiger4.jpg";
	arrImages[39] = ROOTPATH_IMAGES + 	"bsc_tigerfish_ballah.jpg"
	arrImages[40] = ROOTPATH_IMAGES + 	"bsc_tigerfish_mouth.jpg";
	arrImages[41] = ROOTPATH_IMAGES + 	"crt_hexal.jpg";
	arrImages[42] = ROOTPATH_IMAGES + 	"hip_chimp_viewing.jpg"; 
	arrImages[43] = ROOTPATH_IMAGES + 	"crt_platform.jpg";
	arrImages[44] = ROOTPATH_IMAGES + 	"crt_safari_tent.jpg";
	arrImages[45] = ROOTPATH_IMAGES + 	"san_beach.jpg"; 
	arrImages[46] = ROOTPATH_IMAGES + 	"san_lodge.jpg"; 
	arrImages[47] = ROOTPATH_IMAGES + 	"kem_sunset.jpg";
	arrImages[47] = "http://www.hiddengambia.com/adventure_holidays/video/gambiamap_small.swf"; 
	arrImages[48] = "http://www.hiddengambia.com/adventure_holidays/video/gambiamap_small_summer.swf";
	
	for (i = 0; i < arrImages.length; i++) { 
        preImages[i] = new Image();
        preImages[i].src = arrImages[i];
    }
}
