function deleteRecord(url, question)
{
	var question = (question) ? question:"Are you sure of deleting this record?";
	if (confirm(question))
	{
		window.location.href = url;
	}
}

function promptQuestion(url, fieldName, question, answer)
{
	var a = (answer) ? answer:"";
	var question = (question) ? question:"Enter the data please";
	var data = prompt(question, a);

	if (data)
	{
		window.location.href = url+"&"+fieldName+"="+data;
	}
}

function setImage(selectObj)
{
	var imgName = selectObj.options[selectObj.selectedIndex].imageName;
	var imgSrc = selectObj.options[selectObj.selectedIndex].imageSrc;

	var imageName = document.getElementById("imageName");
	imageName.innerHTML = "<a href='../../images/product/extra_image/"+imgSrc+"' target='_blank'>"+imgName+"</a>";
}

function PopupImage(img) {
	titre="Image";
	w=open("",'image','width=400,height=400,toolbar=no,scrollbars=no,resizable=yes');
	w.document.write("<HTML><HEAD><TITLE>"+titre+"</TITLE></HEAD>");
	w.document.write("<SCRIPT language=javascript>function checksize()  { if (document.images[0].complete) {  window.resizeTo(document.images[0].width+12,document.images[0].height+30); window.focus();} else { setTimeout('check()',250) } }</"+"SCRIPT>");
	w.document.write("<BODY onload='checksize()' leftMargin=0 topMargin=0 marginwidth=0 marginheight=0><IMG src=\""+img+"\" border=0>");
	w.document.write("");
	w.document.write("</BODY></HTML>");
	w.document.close();
}

function popup(url, w, h, winName, location, toolbar, scrollBar, resizable)
{
	location = (location) ? ",location=yes":",location=no";
	toolbar = (toolbar) ? ",toolbar=yes":",toolbar=no";
	scrollBar = (scrollBar) ? ",scrollbars=yes":",scrollbars=no";
	resizable = (resizable) ? ",resizable=yes":",resizable=no";

	
	w=open(url,winName,'width='+w+',height=' + h + location + toolbar + scrollBar + resizable);
	
	if (w==null || typeof(w)=="undefined")
	{
		alert("A popup blocker has prevent this website\nfrom showing you relevant information.\nPlease allow popups for this site.");
	}
	else
	{
		w.focus();
	}
}

function selectgroup(field)
{        
	for (var i = 0; i<category.elements.length; i++)
	{
	   	if(category.elements[i].type == "checkbox" && category.elements[i].name == field)
	   	{
	   		category.elements[i].checked = true;	
	   	}	
	}
}
function selectAll()
{
	for (var i = 0; i<category.elements.length; i++)
	{
	   	category.elements[i].checked = true;		
	}
}

function ccpedit(url, question)
{
	question = (question != "" && question) ? question:
		"Are you sure you want to proceed?";
	
	if (confirm(question))
	{
		window.location.href = url;
	}
}

function unselect_All()
{

	if(document.newsletter.unselectall.value == "on")
	{
		for (var i=0;i<document.newsletter.elements.length-3;i++){
			var check = document.newsletter.elements[i];
			check.checked = false;
		}
	}
}
function select_All()
{
	for (var i = 0; i<newsletter.elements.length-4; i++)
	{
	   	newsletter.elements[i].checked = true;		
	}
}
function checkall(groupindex,postcodenumber)
{
	var index = groupindex;
	var check = f1.elements[index].checked;
	var loopnumber = postcodenumber;
	
	if (eval(check))
 	{
		
		for (var i = index+1; i <= index+loopnumber; i++)
		{
	   		f1.elements[i].checked = true;	
	   		//f1.elements[i].disabled= true;	
		}
	}
	else
	{
		for (var i = index+1; i <= index+loopnumber; i++)
		{
	   		f1.elements[i].checked = false;
	   		//f1.elements[i].disabled= false;		
		}
		
	}	
}

function setBackgroundColor(idStr, color, txtObj)
{
	var object = document.getElementById(idStr);

	if (object)
	{
		try
		{
			object.style.backgroundColor = color;
		}
		catch(e)
		{
//			alert("The value you have entered is NOT valid")
			if (txtObj)
			{
//				txtObj.value = "#FFFFFF";
				txtObj.value = ""; 
			}
		}
	}
	else
	{
		alert(object+" - id="+idStr)
	}

}

function hideInfoBox()
{
	var container = getContainerReference1();
	container.innerHTML = "";
	container.style.display = "none";
}

function getContainerReference1()
{
	var objInfoBox = document.getElementById("infoBox");

	if (objInfoBox) 
	{
		return objInfoBox;
	}
	else
	{
		var objDiv = document.createElement("div");
			objDiv.className = "infoBox";
			objDiv.id = "infoBox";

		document.body.appendChild(objDiv)
		return objDiv;
	}
}

function formatDB2Date(date)
{
	if (date.length == 10)
	{
		return date.substr(8,2)+"/"+date.substr(5,2)+"/"+date.substr(2,2);
	}

	return "n/a";
}

function drawIcon(file_name)
{
	extensions = new Array("jpg", "indd", "html,htm,php,js",
		"doc", "pdf", "psd", "pub", "tif,tiff", "xls", "rar");
	icons = new Array("jpg.gif", "indd.gif", "html.gif",
		"doc.gif", "pdf.gif", "psd.gif", "pub.gif", "tif.gif",
		"xls.gif", "rar.gif");

	counter = 0;
	while(file_name.indexOf(".") != -1)
	{
		file_name = file_name.substr(file_name.indexOf(".")+1);
		counter++;
		if (counter == 50)
		{
			alert("stack");
			return "";
		}
	}

	for(i=0; i<extensions.length; i++)
	{
		extension_arr = extensions[i].split(",");

		for (j=0; j<extension_arr.length; j++)
		{
			if (file_name == extension_arr[j])
			{
				return "<img src='../images/icons/"+icons[i]+"' onerror='this.style.display=\"none\"' />";
			}
		}
	} 
}
function tickAll_chk(formObj, chk)
{
	for (var i = 0; i<formObj.elements.length; i++)
	{
	   	if(formObj.elements[i].type == "checkbox")
	   	{
	   		formObj.elements[i].checked = chk.checked;
	   	}
	}
}

function printFriendly(title, containerStr, banner, cssArr)
{
	var containerObj = document.getElementById(containerStr);
    var containerObj2 = document.getElementById('path_id'); 
	if(containerObj)
	{
		var css_str = "";
		if(cssArr)
		{
			for(i=0; i<cssArr.length; i++)
			{
				css_str += "<link href='"+cssArr[i]+"' rel='stylesheet'>";
			}
		}
	
		w=open(title,'image','width=600,height=550,toolbar=no,scrollbars=yes,resizable=yes');
		w.document.write("<HTML><HEAD><TITLE>"+title+"</TITLE>\n"
			+ css_str +"<link href='includes/website.css' rel='stylesheet'>"
			+"</HEAD>");
		w.document.write("<BODY leftMargin=5 topMargin=5 marginwidth=5 marginheight=5>");
		w.document.write(banner+"<br /><br />");
		w.document.write("<div class='headline'>"+title+"</div>");
		if(containerObj2){
		  	w.document.write("<span class='pathStyle'>");
		  
					 
		w.document.write(containerObj2.innerHTML);
			w.document.write("</span>");
		}
		w.document.write("<table width='100%' class='text'>");
		
		w.document.write(containerObj.innerHTML);
		w.document.write("</table><br /><input type='button' class='forms' value=' PRINT ' onclick='window.print()' />");
		w.document.write("<script>");
		w.document.write("document.getElementById('top_send_to_print').style.display='none'");
		w.document.write("</script>");
		w.document.write("</BODY></HTML>");
		w.document.close();
		w.focus();
	}
	else
	{
		alert("Container doesn't exist in this page\n"+containerStr);
	}
}

function bookMarkPage(websiteName)
{
	var added = window.external.AddFavorite(window.location.href,
		"" + document.title);
}

function makeCCNumber(ccObj, txt1, txt2, txt3, txt4)
{
	ccObj.value = txt1 + " " + txt2 + " " + txt3 + " " + txt4;
}
function makeCCExpire(ccObj, txt1, txt2)
{
	ccObj.value = txt1 + "/" + txt2;
}

function formBuilderCheck(formObj)
{
	for(i=0; i<formObj.elements.length; i++)
	{
		if(formObj.elements[i].err && formObj.elements[i].style.display != "none")
		{
			if(formObj.elements[i].type.toLowerCase() == "select" ||
				formObj.elements[i].type.toLowerCase() == "select-one")
			{
				if(formObj.elements[i].selectedIndex == 0)
				{
					alert(formObj.elements[i].err);
					formObj.elements[i].focus();
					return false;
				}
			}
			else if(formObj.elements[i].type.toLowerCase() == "radio" ||
				formObj.elements[i].type.toLowerCase() == "checkbox")
			{
				var isChecked = false;
				var elements = new Array();
				for(j=0; j<formObj.elements.length; j++)
				{
					if (formObj.elements[j].name == formObj.elements[i].name)
					{
						elements[elements.length] = formObj.elements[j];
					}
				}

				for(j=0; j<elements.length; j++)
				{
					if(elements[j].checked)
					{
						isChecked = true;
					}
				}

				if(!isChecked)
				{
					alert(formObj.elements[i].err);
					formObj.elements[i].focus();
					return false;
				}
			}
			else
			{
				var test = doTrim(formObj.elements[i].value);
				if(test == "")
				{
					alert(formObj.elements[i].err);
					if(formObj.elements[i].type.toLowerCase() != "hidden")
					{
						formObj.elements[i].focus();
					}
					return false;
				}
			}
		}
	}
	return true;
}
function doTrim(s)
{
	while(s.indexOf(" ") != -1)
	{
		s = s.replace(" ", "");
	}
	return s;
}

function ITShowHideElement(eleID, force)
{
	try
	{
		var eleIDObj = document.getElementById(eleID);
		var display = (force) ? force:(eleIDObj.style.display == "none") ? "":"none";
		eleIDObj.style.display = display;
	}
	catch(e)
	{
		//alert(e.description)
	}
}

function basename(path) 
{ 
	return path.replace( /.*\//, "" ); 
}

var prevDiv = null;
var prevAnc = null;

function showHideHistory(anchorID, divID, flag)
{
	var divObj = document.getElementById(divID);
	var anchorObj = document.getElementById(anchorID);
	
	if(prevDiv && prevAnc &&
		prevDiv != divObj && prevAnc != anchorObj)
	{
		prevDiv.style.display = "none";
		prevAnc.innerHTML  = "show history";
		
		if(flag)
		{
			prevAnc.innerHTML = "<font color='#FFFFFF'>"+prevAnc.innerHTML+"</font>";
		}
	}

	if(divObj && anchorObj)
	{
		anchorObj.innerHTML = (divObj.style.display == "block") ? "show history":"hide history";
		divObj.style.display = (divObj.style.display == "block") ? "none":"block";
		
		if(flag)
		{
			anchorObj.innerHTML = "<font color='#FFFFFF'>"+anchorObj.innerHTML+"</font>";
		}
	}
	
	prevDiv = divObj;
	prevAnc = anchorObj;	
}

function checkFormErr(formObj)
{
	for(var i=0; i<formObj.elements.length;i++)
	{
		if(formObj.elements[i].err &&
			formObj.elements[i].value == "")
		{
			formObj.elements[i].focus();
			alert(formObj.elements[i].err);
			return false;
		}
	}
	
	return true;
}

/*other's functions*/
function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain a valid e-mail address.\n';
      } else if (test!='R') {
        if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (val<min || max<val) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '* '+nm+' \n'; }
  } if (errors) alert('Sorry. Adding customer details require the following information:\n'+errors);
  document.MM_returnValue = (errors == '');
}

function checkPw(form) {
pw1 = form.password.value;
pw2 = form.password2.value;

if (pw1 != pw2) {
alert ("\nYou did not enter the same new password twice. Please re-enter your password.")
return false;
}
else return true;
}

 function isEmailAddr(email)
{
  var result = false
  var theStr = new String(email)
  var index = theStr.indexOf("@");
  if (index > 0)
  {
    var pindex = theStr.indexOf(".",index);
    if ((pindex > index+1) && (theStr.length > pindex+1))
	result = true;
  }
  return result;
}

function FormValidator(theForm)
{
  if (theForm.enquiry.value == "")
  {
    alert("Please enter a value for the \"Enquiry \/ Booking Details\" field.");
    theForm.email.focus();
    return (false);
  }

  if (theForm.email.value == "")
  {
    alert("Please enter a value for the \"Email\" field.");
    theForm.email.focus();
    return (false);
  }

  if (!isEmailAddr(theForm.email.value))
  {
    alert("Please enter a complete email address in the form:\n yourname@yourdomain.com");
    theForm.email.focus();
    return (false);
  }
   
  if (theForm.email.value.length < 3)
  {
    alert("Please enter at least 3 characters in the \"email\" field.");
    theForm.email.focus();
    return (false);
  }
  
    if (theForm.comeTo.value == "")
  {
    alert("Please select an item from the \"How did you come to Seaplane Safaris?\" field.");
    theForm.comeTo.focus();
    return (false);
  }
  
  return (true);
}

/* contact us forms */
function validateEnquiry(formObj)
{
	try
	{
		var error="";
		var divname="span";
		var tmpCurrentGroup = "";
		var tmpGroups = new Array();

		for(var i=0; i<formObj.elements.length; i++) //>
		{
			if(formObj.elements[i].name)
			{
				if(formObj.elements[i].isCompulsory == "true") //check compulsory elements
				{
					divname = formObj.elements[i].errorID; 
					hideIcons(divname); //hidding icons

					if(formObj.elements[i].type == "text" ||
						formObj.elements[i].type == "textarea" ||
						formObj.elements[i].type == "password")
					{
						if(formObj.elements[i].value == "")
						{
							error =	showIcons(formObj.elements[i], divname, error);
						}											
					}
					if(formObj.elements[i].type == "radio" ||
						formObj.elements[i].type == "checkbox") 
					{
						if(tmpCurrentGroup != formObj.elements[i].name)
						{
							var key = tmpGroups.length;
							tmpGroups[key] = new Array();
							tmpCurrentGroup = formObj.elements[i].name;
						}
						
						var counter = tmpGroups[key].length;
						tmpGroups[key][counter] = formObj.elements[i];
					}					
					if(formObj.elements[i].type == "select-one")
					{
						if(formObj.elements[i].selectedIndex == 0)
						{
							error =	showIcons(formObj.elements[i], divname, error);
						}
					}					
					if(formObj.elements[i].type == "select-multiple")
					{
						if(formObj.elements[i].selectedIndex == -1)
						{
							error =	showIcons(formObj.elements[i], divname, error);						
						}
					}					
				}
			}
		}
		
		if(tmpGroups.length) //radio or checkbox elements to be tested
		{
			for(var i=0; i<tmpGroups.length; i++) //iterating through groups
			{					
				var selectionFound = false;
				for(var j=0; j<tmpGroups[i].length; j++) //iterating through elements
				{
					if(tmpGroups[i][j].checked) //if checked
					{
						selectionFound = true;
						break;
					}
				}
				
				if(!selectionFound) //if no selection was found
				{
					divname = tmpGroups[i][0].errorID; //using the first element from the group - 0
					error =	showIcons(tmpGroups[i][0], divname, error);				
				}
			}
		}

		if(error=="")
		{
			return true;
		}
		else
		{
			error="Fields marked with an arrow are compulsory.\n"+error+"\nPlease fill them in.";
			alert(error);
			return false;
		}
		return false;
	}
	catch(e)
	{
		alert(e.description)
		return false;
	}
}

function showIcons(fieldObj,divname,error)
{
	document.getElementById(divname).style.display = "block";

	if(fieldObj)
	{
		error+= "\n"+fieldObj.label;	
		fieldObj.focus()
	}
	
	return error;
}
function hideIcons(divname)
{
	document.getElementById(divname).style.display = "none";
}

function ismail(mail)
{
	return(new RegExp(/^\w+(((_|-)\w+)|(\.)|('\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/).test(mail));
}
function goTo(url, addToHistory)
{
	if(addToHistory)
	{
		window.location.href=url;
	}
	else
	{
		window.location.replace(url);
	}
}

function askConfirmation(url, question)
{
	if(confirm(question))
	{
		goTo(url, 0);
	}
}

function doDelete(url, customQuestion)
{
	customQuestion = (customQuestion) ? customQuestion:"Are you sure you want to delete this record?";
	askConfirmation(url, customQuestion);
}

function selectAllBoxes(chkObj, classNameFlag) {

	var chkElements = getElementsByClassName(chkObj.form, "input", classNameFlag)
	for(var i=0; i<chkElements.length; i++)
	{
		chkElements[i].checked = chkObj.checked;
	}

/*
	var formObj = chkObj.form;

	for(var i=0; i<formObj.elements.length; i++)
	{
		if(formObj.elements[i].type.toLowerCase() == "checkbox")
		{
			var classes = formObj.elements[i].className.split(" ");
			for(j in classes)
			{
				if(classes[j].toLowerCase() == classNameFlag.toLowerCase())
				{
					formObj.elements[i].checked = chkObj.checked;
				}				
			}
		}
	}
*/
}

function selectAllBoxes2(formObj, classNameFlag)
{
	var checkedValue = null;
	
	for(var i=0; i<formObj.elements.length; i++)
	{
		if(formObj.elements[i].type.toLowerCase() == "checkbox")
		{
			try
			{
				var classes = formObj.elements[i].className.toLowerCase().split(" ");		

				for(var j=0; j<classes.length; j++)
				{					
					if(classes[j] == classNameFlag.toLowerCase())
					{
						if(checkedValue == null)
						{
							checkedValue = formObj.elements[i].checked;
						}
						
						formObj.elements[i].checked = !checkedValue;
					}
				}
			}
			catch(e)
			{
				alert(e.description)
			}
		}
	}
}


function reloadAndClose()
{
	if(window.opener)
	{
		window.opener.location.reload();
	}

	window.close();
}

function showHide(eleID)
{
	var ele = document.getElementById(eleID);

	if(ele)
	{
		ele.style.display = (ele.style.display == "none") ? "block":"none";
	}
}

function swapCSSClass(obj, cssClass)
{
	if(obj)
	{
		obj.className = cssClass;
	}
}

function confirmDeleteForm(question)
{
	question = (question) ? question:"Are you sure you want to proceed?";
	return confirm(question);
}
function ITSetSelectTitle(selectObj)
{	
	if(selectObj.options[selectObj.selectedIndex].text)
	{
		selectObj.title = selectObj.options[selectObj.selectedIndex].text;
	}
}

var leftCounter = 0;
var rightCounter = 0;

function runHeaderSlideshow(seconds)
{
	var ie55=window.createPopup;	
	var pixeldelay = 0;
	
	try
	{
		leftCounter = (leftCounter == leftBannerImageArr.length) ? 0:leftCounter;	
		var leftBannerImageObj = document.getElementById("leftBannerImage");
		pixeldelay = (ie55) ? leftBannerImageObj.filters[0].duration*1000:0;

		if(leftBannerImageObj)
		{
			if (ie55) 
			{
				leftBannerImageObj.filters[0].apply()
			}

			leftBannerImageObj.src = leftBannerImageArr[leftCounter++].src;

			if (ie55) 
			{
				leftBannerImageObj.filters[0].play()
			}		
		}
	}
	catch(e) {}
		
	try
	{
		rightCounter = (rightCounter == rightBannerImageArr.length) ? 0:rightCounter;	
		var rightBannerImageObj = document.getElementById("rightBannerImage");
		pixeldelay = (ie55) ? rightBannerImageObj.filters[0].duration*1000:0;
		if(rightBannerImageObj)
		{
			if (ie55) 
			{
				rightBannerImageObj.filters[0].apply()
			}

			rightBannerImageObj.src = rightBannerImageArr[rightCounter++].src;

			if (ie55) 
			{
				rightBannerImageObj.filters[0].play()
			}
		}
	}
	catch(e) {}
	
	t = setTimeout("runHeaderSlideshow('"+seconds+"')", (seconds*1000)+pixeldelay);
}

try
	{
	//firefox table move row
	//from http://studiozero.proboards44.com/index.cgi?board=opensrc&action=print&thread=1141170034
	if(typeof document.getElementsByTagName("TABLE")[0].moveRow == "undefined"){
	Node.prototype.moveRow = function(){
	if(this && this.nodeName.match(/^(table|t(body|head|foot))$/i)){
	try {
	one = (!arguments[0] && arguments[0] != 0?-1:arguments[0]);
	two = (!arguments[1] && arguments[1] != 0?-1:arguments[1]);

	// Makes sure the row exists and then makes sure the insertable row isn't greater then the length
	if(!this.rows[one] || two > this.rows.length){
	var err = new Error();
	throw err;
	}

	// This is just so that it gets put in the right place.
	if(two > one)
	two = two+1;
	else if(one > two)
	one = one+1;

	newRow = this.insertRow(two);
	newRow.innerHTML = this.rows[one].innerHTML;
	this.deleteRow(one);
	} catch(e) {
	}
	}
	}
	}
}
catch(e)
{}

function getElementsByClassName(oElm, strTagName, oClassNames){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	var arrRegExpClassNames = new Array();
	if(typeof oClassNames == "object"){
		for(var i=0; i<oClassNames.length; i++){
			arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)"));
		}
	}
	else{
		arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames.replace(/\-/g, "\\-") + "(\\s|$)"));
	}
	var oElement;
	var bMatchesAll;
	for(var j=0; j<arrElements.length; j++){
		oElement = arrElements[j];
		bMatchesAll = true;
		for(var k=0; k<arrRegExpClassNames.length; k++){
			if(!arrRegExpClassNames[k].test(oElement.className)){
				bMatchesAll = false;
				break;
			}
		}
		if(bMatchesAll){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}
