//detects the capabilities of the browser
function BrowserSniffer() {
	if (navigator.userAgent.indexOf("Opera")!=-1 && document.getElementById) type="OP";		//Opera
	else if (document.all) type="IE";														//Internet Explorer e.g. IE4 upwards
	else if (document.layers) type="NN";													//Netscape Communicator 4
	else if (!document.all && document.getElementById) type="MO";							//Mozila e.g. Netscape 6 upwards
	else type = "IE";		//I assume it will not get here
}

function ChangeMessage(id, str) {
	if (type=="IE") {
		document.all[id].innerHTML = str;
	}
	if (type=="NN") { 
		document.layers[id].document.open();
		document.layers[id].document.write(str);
		document.layers[id].document.close();
	}
	if (type=="MO" || type=="OP") {
		document.getElementById(id).innerHTML = str;
	}
}

function ShowIt(current, num) {			
	if (type=="IE") {
		ms=document.all[current];
		ms.style.visibility = "visible";				
	}
	if (type=="NN") {
		ms=document.layers[current];
		ms.visibility = "visible";				
	}
	if (type=="MO" || type=="OP") {
		ms=document.getElementById(current);
		ms.style.visibility = "visible";				
	}	
}

function HideIt(current) {
	if (type=="IE") {
		ms=document.all[current];		
		ms.style.visibility = "hidden";
	}
	if (type=="NN") {
		ms=document.layers[current];
		ms.visibility = "hidden";
	}
	if (type=="MO" || type=="OP") {
		ms=document.getElementById(current);
		ms.style.visibility = "hidden";
	}		
}

// Trim leading and trailing white space
function trim(str) {
  return str.replace(/^\s+|\s+$/g, '')
};

// Validate the email address
function validateEmail(email) {
	var re = false;        
	var ea = trim(email);        
	var pattern = /^[a-zA-Z0-9][\w\-\.]{0,50}\@[a-zA-Z0-9][\w-]+(\.[a-zA-Z]\w+)+$/;
	if (ea != "" && pattern.test(ea)) {
		re = true;
	}
	return re;
}

// Check whether it is empty or not
function validateEmpty(nm){
	var name = trim(nm);
	return name==""? false : true;
}




//---------------------------------
function validatePhone(num){
	var re = false;
	var n = trim(num);
	var pattern = /^\(?\d{3}\)?\s?\d{3}[\s-]?\d{4}$/;
	if(!n=="" && pattern.test(n)){
		re = true;
	}
	return re;
	
}


//--------------------------------
function validatePostcode(pcode, country){
	var re = false;
	var pc = trim(pcode);
	var c = trim(country);
	
	var pattern_ca = /^[a-zA-Z]\d[a-zA-Z]\s?\d[a-zA-Z]\d$/;
	var pattern_us = /^\d{5}(-\d{4})?$/;
	if(c =="Canada"){
		re = pattern_ca.test(pc);
	}else{
		re = pattern_us.test(pc);
	}
	return re;
}


//---------------------------------
function validateTime(t){
	var re = false;
	var pattern = /^\d?\d:\d\d([aA]|[pP])[mM]$/;
	if(pattern.test(t)){
		re = true;
	}
	return re;
}



//----------------------------------
function isDigits(d){
	var re = false;
	var pattern = /^[1-9]\d*$/;
	if(pattern.test(d) || d==0){
		re = true;
	}
	return re;
}



//----------------------------------
function isPrice(d){//\d*\.?\d*
	var re = false;
	var pattern = /^[1-9]\d*$/;
	var pattern2 = /^0{1}\.{1}\d+$/;
	var pattern3 = /^[1-9]{1}\d*\.{1}\d+$/;
	
	if(pattern.test(d) || pattern2.test(d) || pattern3.test(d) ){
		re = true;
	}
	return re;
}


//------------------------------------
//This two functions are used to checkall/uncheckall motion for dynamically generated check boxes.
//It has two groups of checkbox: one is the checkall check box. It is statis; another ones are multiple
//dynamically-generated checkboxes

//check all check boxes when checkall is checked
function checkallbox(form, chkAllBoxId){
	var chk = document.getElementById(chkAllBoxId);
	var formElements = eval("document." + form + ".elements");
	var len = formElements.length;
	
	if(chk.checked){
		for(var i=0; i<len;i++){
			if(formElements[i].type=="checkbox" && formElements[i].id != chkAllBoxId){
				formElements[i].checked = true;
			}
		}
	}else{
		for(var i=0; i<len;i++){
			if(formElements[i].type=="checkbox" && formElements[i].id != chkAllBoxId){
				formElements[i].checked = false;
			}
		}
	}	
}

//check/uncheck to see if checkall must be checked/unchecked
function tocheck(form, id, chkAllBoxId){
	var chk = eval("document." + form + "." + chkAllBoxId); //check all box id
	var curchk = document.getElementById(id);
	var formElements = eval("document." + form + ".elements");
	var len = formElements.length;
	var counter = 0;
	var counter2 = 0;
	//get number of child check box
	for(var i=0; i<len;i++){
		if(formElements[i].type=="checkbox" && formElements[i].id != chkAllBoxId){
			counter++;
		}
	}
	
	if(curchk.checked){
		for(var i=0; i<len;i++){
			if(formElements[i].type=="checkbox" && formElements[i].id != chkAllBoxId){
				if(formElements[i].checked){
					counter2++;
				}
			}
		}
		if(counter2==counter){
			chk.checked = true;
		}else{
			chk.checked = false;
		}
	}else{
		chk.checked = false;
	}
}

//Disable Right Click to Prevent Saving Images
var message="Right clicking has been disabled."; 
function click(e) 
    { 
    if (document.all) 
        { 
        if (event.button == 2) 
            { 
            alert(message); 
            return false; 
            } 
        } 
    if (document.layers) 
        { 
        if (e.which == 3) 
            { 
            alert(message); 
            return false; 
            } 
        } 
    } 
if (document.layers) 
    { 
    document.captureEvents(Event.MOUSEDOWN); 
    } 
document.onmousedown=click; 


