var NS4 = (document.layers) ? true : false;
var weekdaystxt=["Sun", "Mon", "Tues", "Wed", "Thurs", "Fri", "Sat"];
var dtCh= "/";
var minYear=1900;
var maxYear=2100;
var specialSpaceChar;
specialSpaceChar = String.fromCharCode(160);
var currentImgPos=0;
var totalCatImgs=0;

showLocalTime.prototype.updateTime=function(){
	var thisobj=this
	this.localtime.setSeconds(this.localtime.getSeconds()+1)
	setTimeout(function(){thisobj.updateTime()}, 1000) //update time every second
}

showLocalTime.prototype.updateContainer=function(){
	var thisobj=this
	if (this.displayversion=="long")
		this.container.innerHTML=this.localtime.toLocaleString()
	else{
		var hour=this.localtime.getHours()
		var minutes=this.localtime.getMinutes()
		var seconds=this.localtime.getSeconds()
		var ampm=(hour>=12)? "PM" : "AM"
		var dayofweek=weekdaystxt[this.localtime.getDay()]
		//this.container.innerHTML=formatField(hour, 1)+":"+formatField(minutes)+":"+formatField(seconds)+" "+ampm+" ("+dayofweek+")"
		this.container.innerHTML=formatField(hour, 1)+":"+formatField(minutes)+" "+ampm
	}
	setTimeout(function(){thisobj.updateContainer()}, 1000) //update container every second
}

function formatField(num, isHour){
	if (typeof isHour!="undefined"){ //if this is the hour field
		var hour=(num>12)? num-12 : num
		return (hour==0)? 12 : hour
	}
	return (num<=9)? "0"+num : num//if this is minute or sec field
}


function openWindow(URL, xDim, yDim) {
	var popWin;
	popWin = window.open(URL,"popWin","titlebar=1,toolbar=0,location=0,menubar=0,scrollbars=1,resizable=1,channelmode=0,directories=0,status=1,width=" + xDim + ",height=" +yDim);
	popWin.focus();
}

function openPrevImage() {
	if (currentImgPos>0) {
		currentImgPos--;
		document.getElementById("largeImgContainer").innerHTML = '<img src="' + parent.frames.thumbFrame.imgIDs[currentImgPos] + '" border="0" /><br />' + parent.frames.thumbFrame.imgTitles[currentImgPos] + '<br />' + parent.frames.thumbFrame.imgLocations[currentImgPos];
		document.linkForm.permalink.value= "http://www.evasbackpackers.com.au/" + parent.frames.thumbFrame.imgIDs[currentImgPos];
		document.emailForm.permalink.value = document.linkForm.permalink.value;
	}
}

function openNextImage() {
	if (currentImgPos<(totalCatImgs-1)) {
		currentImgPos++;
		document.getElementById("largeImgContainer").innerHTML = '<img src="' + parent.frames.thumbFrame.imgIDs[currentImgPos] + '" border="0" /><br />' + parent.frames.thumbFrame.imgTitles[currentImgPos] + '<br />' + parent.frames.thumbFrame.imgLocations[currentImgPos];
		document.linkForm.permalink.value= "http://www.evasbackpackers.com.au/" + parent.frames.thumbFrame.imgIDs[currentImgPos];
		document.emailForm.permalink.value = document.linkForm.permalink.value;
	}
}

function toggleCatRow(newsID) {
	if (document.getElementById('editRow_' + newsID).style.display=='none') {
		document.getElementById('editRow_' + newsID).style.display='';
	}
	else {
		document.getElementById('editRow_' + newsID).style.display='none';
	}
}

function toggleImgRow(imageID) {
	if (document.getElementById('editRow1_' + imageID).style.display=='none') {
		document.getElementById('editRow1_' + imageID).style.display='';
		document.getElementById('editRow2_' + imageID).style.display='';
		document.getElementById('editRow3_' + imageID).style.display='';
	}
	else {
		document.getElementById('editRow1_' + imageID).style.display='none';
		document.getElementById('editRow2_' + imageID).style.display='none';
		document.getElementById('editRow3_' + imageID).style.display='none';
	}
}

function copyFormToApplet() {
	var tmpLocation, tmpTitle, tmpCatName;
	tmpCatName = document.getElementById("imageUploaderForm").catName.value;
	
	if (tmpCatName.trim()=="" || tmpCatName==null) {
		tmpCatName = "NODATA";
	}
	
	tmpTitle = document.getElementById("imageUploaderForm").title.value;
	
	if (tmpTitle.trim()=="" || tmpTitle==null) {
		tmpTitle = "NODATA";
	}
	
	tmpLocation = document.getElementById("imageUploaderForm").location.value;
	
	if (tmpLocation.trim()=="" || tmpLocation==null) {
		tmpLocation = "NODATA";
	}

	document.getElementById("uploaderApplet").setProperty("postURL", "jUploadMedia.asp?mode=" + document.getElementById("imageUploaderForm").mode.value + "&uploadID=" + document.getElementById("imageUploaderForm").uploadID.value + "&catID=" + document.getElementById("imageUploaderForm").catID[document.getElementById("imageUploaderForm").catID.selectedIndex].value + "&catName=" + replace(tmpCatName, " ", "%20") + "&title=" + tmpTitle + "&location=" + tmpLocation);
}

function copySimpleFormToApplet() {
	var tmpCatName;
	tmpCatName = document.getElementById("imageUploaderForm").catName.value;
	
	if (tmpCatName.trim()=="" || tmpCatName==null) {
		tmpCatName = "NODATA";
	}
	
	document.getElementById("uploaderApplet").setProperty("postURL", "jUploadMedia.asp?mode=" + document.getElementById("imageUploaderForm").mode.value + "&uploadID=" + document.getElementById("imageUploaderForm").uploadID.value + "&catID=" + document.getElementById("imageUploaderForm").catID[document.getElementById("imageUploaderForm").catID.selectedIndex].value + "&catName=" + replace(tmpCatName, " ", "%20"));
}

function addRespItem() {
	if (document.catlist.newRespName.value.length>0) {
		document.catlist.respName.value = document.catlist.newRespName.value;
		document.catlist.action="addResp.asp";
		document.catlist.submit();
	}
	else {
		alert("You must write a response before adding it to the list");
		document.catlist.newRespName.focus();
	}
}

function updateRespItem(respID) {
	if (document.catlist.elements['respName_' + respID].value.length>0) {
		document.catlist.respID.value=respID;
		document.catlist.respName.value=document.catlist.elements['respName_' + respID].value;
		document.catlist.submit();
	}
	else {
		alert("You must write a response before updating it");
		document.catlist.elements['respName_' + respID].focus();
	}
}

function deleteRespItem(respID) {
	document.catlist.respID.value=respID;
	document.catlist.action="deleteRespItem.asp";
	document.catlist.submit();
}

function respondBooking(bookingID) {
	document.catlist.bookingID.value=bookingID;
	document.catlist.submit();
}

function deleteBooking(bookingID) {
	document.catlist.bookingID.value=bookingID;
	document.catlist.action="deleteBookingItem.asp";
	document.catlist.submit();
}

function deleteAllSelectedBookingReqs() {
	document.catlist.action="deleteSelectedBookingItems.asp";
	document.catlist.submit();
}

function clearSelectedBookingReqs() {
	for (var i=0; i<document.catlist.booking_id_selection.length; i++) {
		document.catlist.booking_id_selection[i].checked=false;
	}
}

function addCatItem() {
	if (document.catlist.newCatName.value.length>0) {
		document.catlist.catName.value = document.catlist.newCatName.value;
		document.catlist.action="addCat.asp";
		document.catlist.submit();
	}
	else {
		alert("You must specify a category name before adding it to the list");
		document.catlist.newCatName.focus();
	}
}

function updateCatItem(catID) {
	if (document.catlist.elements['catName_' + catID].value.length>0) {
		document.catlist.catID.value=catID;
		document.catlist.active.value=document.catlist.elements['chk_' + catID].checked;
		document.catlist.catName.value=document.catlist.elements['catName_' + catID].value;
		document.catlist.submit();
	}
	else {
		alert("You must specify a category name before updating the category");
		document.catlist.elements['catName_' + catID].focus();
	}
}

function deleteCatItem(catID) {
	document.catlist.catID.value=catID;
	document.catlist.action="deleteCatItem.asp";
	document.catlist.submit();
}

function addImageItem(imgID, frm) {
	frm = frm.form;
	if (frm["imgFile_" + imgID].value.length==0 && imgID==0) {
		alert("You must specify a large image filename before adding it to the list");
		frm["imgFile_" + imgID].focus();
	}
	else {
		frm.imageID.value = imgID;
		frm.submit();
	}
}

function deleteImageItem(imgID, frm) {
	frm = frm.form;
	frm.imageID.value=imgID;
	frm.action="deleteImgItem.asp";
	frm.submit();
}

function submitCMSForm(btn) {
	var frm;
	frm = btn.form;
	if (frm["title"].value.length>0) {
		frm.submit();
	}
	else {
		alert("You must assign this article a title before you can save it!");
		frm["title"].focus();
	}
}

function deleteNewsItem(newsID) {
	document.newslist.newsID.value=newsID;
	document.newslist.action="deleteFPTagItem.asp";
	document.newslist.submit();
}

function updateNewsItem(newsID) {
	if (document.newslist.elements['copy_' + newsID].value.length>0) {
		document.newslist.newsID.value=newsID;
		document.newslist.active.value=document.newslist.elements['chk_' + newsID].checked;
		document.newslist.url.value=document.newslist.elements['url_' + newsID].value;
		document.newslist.copy.value=document.newslist.elements['copy_' + newsID].value;
		document.newslist.submit();
	}
	else {
		alert("You must write some text before updating");
		document.newslist.elements['copy_' + newsID].focus();
	}
}

function addNewsItem() {
	if (document.newslist.copy_news.value.length>0) {
		document.newslist.action="addFPTag.asp";
		document.newslist.submit();
	}
	else {
		alert("You must write some text before adding it to the list");
		document.newslist.copy_news.focus();
	}
}

function toggleNewsRow(newsID) {
	if (document.getElementById('editRow_' + newsID).style.display=='none') {
		document.getElementById('editRow_' + newsID).style.display='';
	}
	else {
		document.getElementById('editRow_' + newsID).style.display='none';
	}
}

function validateSend (frm) {
	if (frm.strSecurity.value.length<2) {
		alert('You need to validate your entry by typing in the code you see below into the text box next to it');
		frm.strSecurity.focus();
		return false;
	}
	else {
		return echeck(frm.email.value);
	}
}

function validateBookingRequest(frm) {
	frm = frm.form;
	
	var success;
	success=true;
	
	var bookingStartDate = new Date;
	var bookingEndDate = new Date;
	
	var todaysDate = new Date();
	
	todaysDate.setDate(1);
	todaysDate.setFullYear(currentDate.getFullYear());
	todaysDate.setMonth(currentDate.getMonth());
	todaysDate.setDate(currentDate.getDate());
	todaysDate.setHours(0,0,0,0);

	
	var dateIndex1, dateIndex2;
	
	if (!echeck(frm.email.value)) {
		frm.email.focus();
		success=false;
	}
	else {
		if (frm.stayStartDate.value.length==0) {
			alert("You need to provide a Check-in date for this booking");
			success=false;
		}
		else if (frm.stayEndDate.value.length==0) {
			alert("You need to provide a Check-out date for this booking");
			success=false;
		}
		else if (frm.firstName.value.length<2 || frm.lastName.value.length<2) {
			alert("You need to provide a Guest Name for this booking");
			frm.firstName.focus();
			success=false;
		}
		else {
			dateIndex1 = frm.stayStartDate.value.indexOf ("/");
			dateIndex2 = frm.stayStartDate.value.substring (dateIndex1+1, frm.stayStartDate.value.length).indexOf ("/")+dateIndex1+1;
		
			bookingMonth = frm.stayStartDate.value.substring (0, dateIndex1);
			bookingDay = frm.stayStartDate.value.substring (dateIndex1+1, dateIndex2);
			bookingYear = frm.stayStartDate.value.substring (dateIndex2+1, frm.stayStartDate.value.length);	
		
			bookingStartDate.setDate(1);
			bookingStartDate.setFullYear(bookingYear); 
			bookingStartDate.setMonth(bookingMonth-1); // January = 0
			bookingStartDate.setDate(bookingDay);
			bookingStartDate.setHours(0,0,0,0);
		
			if (bookingStartDate < todaysDate) {
				alert("The Check-in date for this booking is in the past!");
				success=false;
			}
		
			if (success==true) {
				dateIndex1 = frm.stayEndDate.value.indexOf ("/");
				dateIndex2 = frm.stayEndDate.value.substring (dateIndex1+1, frm.stayEndDate.value.length).indexOf ("/")+dateIndex1+1;
			
				bookingMonth = frm.stayEndDate.value.substring (0, dateIndex1);
				bookingDay = frm.stayEndDate.value.substring (dateIndex1+1, dateIndex2);
				bookingYear = frm.stayEndDate.value.substring (dateIndex2+1, frm.stayEndDate.value.length);	
			
				bookingEndDate.setDate(1);
				bookingEndDate.setFullYear(bookingYear); 
				bookingEndDate.setMonth(bookingMonth-1); // January = 0
				bookingEndDate.setDate(bookingDay);
				bookingEndDate.setHours(0,0,0,0);
			
				if (bookingEndDate <= bookingStartDate) {
					alert("The Check-out date for this booking can not be before of or the same as the Check-in date!");
					success=false;
				}
				if (success==true && bookingEndDate <= todaysDate) {
					alert("The Check-out date for this booking is either today or in the past!");
					success=false;
				}
			}
		
			if (success==true) {
				frm.submit();	
			}
		}
	}
}

function validateImgSend(frm) {
	frm = frm.form;
	
	if (!echeck(frm.email.value) || frm.email.value=="your friend\'s e-mail address") {
		frm.email.focus();
	}
	else if (frm.fromName.value.length<2 || frm.fromName.value=="   your name") {
		alert("You need to provide your name before sending the image to your friend.");
		frm.fromName.focus();
	}
	else {
		frm.submit();	
	}
}

function updateNrNights(btn) {
	var frm;
	frm = btn.form;
	
	var j;
	
	var bookingStartDate = new Date;
	var bookingEndDate = new Date;
	
	var one_day=1000*60*60*24;

	var dateIndex1, dateIndex2;
	
	var bookingMonth, bookingDay, bookingYear;
	
	if (frm.stayStartDate.value.length>0 && frm.stayEndDate.value.length>0) {
		dateIndex1 = frm.stayStartDate.value.indexOf ("/");
		dateIndex2 = frm.stayStartDate.value.substring (dateIndex1+1, frm.stayStartDate.value.length).indexOf ("/")+dateIndex1+1;
	
		bookingMonth = frm.stayStartDate.value.substring (0, dateIndex1);
		bookingDay = frm.stayStartDate.value.substring (dateIndex1+1, dateIndex2);
		bookingYear = frm.stayStartDate.value.substring (dateIndex2+1, frm.stayStartDate.value.length);	
	
		bookingStartDate.setDate(1);
	 	bookingStartDate.setFullYear(bookingYear); 
		bookingStartDate.setMonth(bookingMonth-1); // January = 0
		bookingStartDate.setDate(bookingDay);
		bookingStartDate.setHours(0,0,0,0);
		
		
		dateIndex1 = frm.stayEndDate.value.indexOf ("/");
		dateIndex2 = frm.stayEndDate.value.substring (dateIndex1+1, frm.stayEndDate.value.length).indexOf ("/")+dateIndex1+1;
	
		bookingMonth = frm.stayEndDate.value.substring (0, dateIndex1);
		bookingDay = frm.stayEndDate.value.substring (dateIndex1+1, dateIndex2);
		bookingYear = frm.stayEndDate.value.substring (dateIndex2+1, frm.stayEndDate.value.length);	
	
		bookingEndDate.setDate(1);
	 	bookingEndDate.setFullYear(bookingYear); 
		bookingEndDate.setMonth(bookingMonth-1); // January = 0
		bookingEndDate.setDate(bookingDay);
		bookingEndDate.setHours(0,0,0,0);

		if (bookingEndDate > bookingStartDate) {
			for (j=0; j<frm.nrOfNights.options.length; j++) {
				if (frm.nrOfNights.options[j].value==parseInt((bookingEndDate-bookingStartDate)/one_day)) {
					frm.nrOfNights.options[j].selected=true;
					frm.nrOfNights.selectedIndex=j;
				}
			}
		}
		else {
			frm.nrOfNights.options[0].selected=true;
			frm.nrOfNights.selectedIndex=0;
		}
	}
	else {
		frm.nrOfNights.options[0].selected=true;
		frm.nrOfNights.selectedIndex=0;
	}
}

function updateCalByNrOfNights(btn) {
	var frm;
	frm = btn.form;
	
	var j;
	
	var bookingStartDate = new Date;
	var bookingEndDate = new Date;

	var one_day=1000*60*60*24+(Math.abs(bookingEndDate.getTimezoneOffset())*1000);

	var dateIndex1, dateIndex2;
	
	var bookingMonth, bookingDay, bookingYear;
	
	if (frm.stayStartDate.value.length>0) {
		dateIndex1 = frm.stayStartDate.value.indexOf ("/");
		dateIndex2 = frm.stayStartDate.value.substring (dateIndex1+1, frm.stayStartDate.value.length).indexOf ("/")+dateIndex1+1;
	
		bookingMonth = frm.stayStartDate.value.substring (0, dateIndex1);
		bookingDay = frm.stayStartDate.value.substring (dateIndex1+1, dateIndex2);
		bookingYear = frm.stayStartDate.value.substring (dateIndex2+1, frm.stayStartDate.value.length);	
	
		bookingStartDate.setDate(1);
	 	bookingStartDate.setFullYear(bookingYear); 
		bookingStartDate.setMonth(bookingMonth-1); // January = 0
		bookingStartDate.setDate(bookingDay);
		bookingStartDate.setHours(0,0,0,0);

		bookingEndDate.setDate(1);
	 	bookingEndDate.setFullYear(bookingYear); 
		bookingEndDate.setMonth(bookingMonth-1); // January = 0
		bookingEndDate.setDate(bookingDay);
		bookingEndDate.setHours(0,0,0,0);

		bookingEndDate = new Date(bookingEndDate.getTime() + (one_day * frm.nrOfNights.options[frm.nrOfNights.selectedIndex].value));
		
		frm.stayEnd.value=bookingEndDate.print("%m/%d/%Y");
		calStayEnd.parseDate(frm.stayEnd.value);
		calStayEnd.callHandler();

		calStayEnd.refresh();
	}
	else {
		frm.nrOfNights.options[0].selected=true;
		frm.nrOfNights.selectedIndex=0;
	}
}

function echeck(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   alert("Invalid E-mail address")
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   alert("Invalid E-mail address")
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    alert("Invalid E-mail address")
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    alert("Invalid E-mail address")
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    alert("Invalid E-mail address")
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    alert("Invalid E-mail address")
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    alert("Invalid E-mail address")
		    return false
		 }

 		 return true					
}

function replace(string,text,by) {
	// Replaces text with by in string
    var strLength = string.length, txtLength = text.length;
    if ((strLength == 0) || (txtLength == 0)) return string;

    var i = string.indexOf(text);
    if ((!i) && (text != string.substring(0,txtLength))) return string;
    if (i == -1) return string;

    var newstr = string.substring(0,i) + by;

    if (i+txtLength < strLength)
        newstr += replace(string.substring(i+txtLength,strLength),text,by);

    return newstr;
}

String.prototype.trim = function () {
    return this.replace(/^\s*/, "").replace(/\s*$/, "");
}