//REMEMBER FORM IN COOKIES
if(document.cookie){
	cookiesavailable=true;
}else{
	cookiesavailable=false;
}

function rememberformtext(elementobj){
	//alert(elementobj.name);
	if(cookiesavailable){
		document.cookie=elementobj.name+"="+escape(elementobj.value);
	}
}

function rememberformselect(elementobj){
	if(cookiesavailable){
		document.cookie=elementobj.name+"="+elementobj.selectedIndex;
	}
}

function rememberformradio(elementobj,i){
	if(cookiesavailable){
		//STORE GROUP INDEX FOR ALL RADIO BUTTON GROUP
		document.cookie=elementobj.name+"="+i;
	}
}

function rememberformcheckbox(elementobj){
	if(cookiesavailable){
		//STORE BOOLEAN CHECKED PROPERTY FOR CHECKBOX
		document.cookie=elementobj.name+"="+elementobj.checked;
	}
}

function loadcookies(formobj){

	if(document.cookie){
	
		if(formobj){
		
			var cstring=unescape(document.cookie);
			var carray=cstring.split(";");
			
			for(i=0;i<carray.length;i++){
			
				var cpair = carray[i].split("=");
				var cname = cpair[0];
				var cvalue = cpair[1];
				
				if(i!=0){
					//REMOVE LEADING SPACE EXCEPT FIRST COOKIE
					cname=cname.substring(1,cname.length);
				}
				
				if(cname.indexOf("PHPSESSID")==-1){
					//PHPSESSID COOKIE INTERFERES WITH eval() used to create radio button reference
					//alert(cname+"="+cvalue);
					if(document.getElementById[cname]){
						//alert(cname);//does not reach this!!
						if(document.getElementById[cname].type=="checkbox"){
							document.getElementById[cname].checked=eval(cvalue);
							break;
						}
					}
					if(formobj.elements[cname]){
						//IF ELEMENT OBJ MATCHING cookie NAME EXISTS - IGNORES THOSE WITH REPEATED NAMES?
						if(formobj.elements[cname].type=="text"){
							formobj.elements[cname].value=unescape(cvalue);
						}
						else if(formobj.elements[cname].type=="textarea"){
							formobj.elements[cname].innerHTML=cvalue;
						}
						else if(formobj.elements[cname].type=="select-one"){
							formobj.elements[cname].selectedIndex=cvalue;
						}
						else if(formobj.elements[cname].type=="select-multiple"){
							formobj.elements[cname].selectedIndex=cvalue;
							//add scripting to loop through all?
						}
						else if(formobj.elements[cname].type=="file"){
							//will not work as file element is read only to avoid malicious uploads from client
							formobj.elements[cname].readOnly=false;
							formobj.elements[cname].value=unescape(cvalue);
						}
						else if(formobj.elements[cname].type=="password"){
							formobj.elements[cname].value=unescape(cvalue);
						}
						else if(formobj.elements[cname].type=="checkbox"){
							if(cvalue=="true"){
								formobj.elements[cname].checked=true;
							}else{
								formobj.elements[cname].checked=false;
							}
						}
						else{
							//SPECIAL REFERENCING REQUIRED FOR RADIO BUTTONS
							var radiobtnobject=eval('formobj.'+cname+'['+cvalue+']');
							if(radiobtnobject){
								if(radiobtnobject.type=="radio"){
									radiobtnobject.checked=true;
								}
							}
						}
					}
				}
			}
		}
	}
}

//GENERAL COOKIE FUNCTIONS
function deletecookies(){
	var cstring=unescape(document.cookie);
	var carray=cstring.split(";");
	for(i=0;i<carray.length;i++){
		var cpair = carray[i].split("=");
		var cname = cpair[0];
		if(i!=0){cname=cname.substring(1,cname.length);}
		if(cname.indexOf("PHPSESSID")==-1){
			//ONLY DESTROY NON-SESSION COOKIES 
			setcookie(cname,"",-1);//set expiry to -1 days
		}
	}
}

function getexpirydate(nodays){
   var UTCstring;
   Today = new Date();
   nomilli=Date.parse(Today);
   Today.setTime(nomilli+nodays*24*60*60*1000);
   UTCstring = Today.toUTCString();
   return UTCstring;
}
function getcookie(cookiename) {
   var cookiestring=""+document.cookie;
   var index1=cookiestring.indexOf(cookiename);
   if (index1==-1 || cookiename=="") return ""; 
   var index2=cookiestring.indexOf(';',index1);//stringName.indexOf(searchValue, [fromIndex])
   if (index2==-1) index2=cookiestring.length; 
   return unescape(cookiestring.substring(index1+cookiename.length+1,index2));
}
function setcookie(cname,value,duration){//TO DELETE A SINGLE COOKIE SEND duration VALUE -1 
  cookiestring=escape(cname)+"="+escape(value)+"; expires="+getexpirydate(duration);
  document.cookie=cookiestring;
  if(!getcookie(cname)){
  return false;
  }
  else{
   return true;
  }
}

//CAPITALIZE
String.prototype.capitalize = function(){ //v1.0
    return this.replace(/\w+/g, function(a){
        return a.charAt(0).toUpperCase() + a.substr(1).toLowerCase();
    });
};


//CHECK EMPTY FIELD
function checkemptytextfield(obj){
	if(obj.value==""){
		alert("Please ensure you entered your "+obj.name.replace(/_/g," "));
		obj.focus();
		return false;
	}else{
		return true;
	}
}

//CHECK EMAIL
function checkemail(obj){
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(obj.value)){
		return true;
	}else{
		alert("Please ensure you entered a valid email address");
		obj.focus();
		return false;
	}
}

//CHECK USERNAME
function checkusername(obj){
	var objvalue=obj.value;
	if(objvalue.length<6){
		alert("Please ensure you 6 or more characters in your username");
		obj.select();
		return false;
	}
	return true;
}

//CHECK PASSWORD
function checkpassword(obj){
	var objvalue=obj.value;
	if(objvalue.length<6){
		alert("Please ensure your password has at least 6 characters");
		obj.value="";
		obj.select();
		return false;
	}
	/*else{
		$regexp_notalphanumeric = /[^A-Za-z0-9]/g;
		if(objvalue.match($regexp_notalphanumeric)){
			alert("Please ensure your password has either alphabetical or numerical characters only");
			obj.value="";
			obj.focus();
			obj.select();
			return false;
		}	
	}*/
	return true;
}

//CHECK CONFIRMING PASSWORD
function checkpasswordrepeat(obj,objpassword){
	if(objpassword.value!=obj.value){
		alert("Please retype to confirm your password");
		obj.value="";
		objpassword.value="";
		objpassword.select();
		return false;
	}
	return true;
}

//CHECK POSTCODE 
function checkpostcode(obj,countrycode){
	if(obj.value!=""){
		if(countrycode=="AU"){
			if(isNaN(obj.value)){
				alert("Please enter a numeric postcode");
				obj.select();	
				return false;	
			}
			else if(obj.value.length!=4){
				alert("Please enter a valid 4 digit postcode");
				obj.select();	
				return false;	
			}else{
				pc=obj.value;
				if(pc.indexOf("0")==0){pc=pc.substring(1,pc.length)}
				//remove leading 0 before using parseInt()
				pc = parseInt(pc);
				if ((pc < 200) || (pc > 299 && pc < 800) || (pc > 9999)
					){
					alert("Please ensure your postcode is valid");
					obj.select();
					return false;
				}else{
					return true;
				}
			}
		}else{
			return true
		}
	}else{
		alert("Please enter a postcode/zip code");
		obj.select();	
	}
}


//CHECK PHONE
function checkphone(obj){
	var objvalue=obj.value;
	if(objvalue.substr(0,1)!="0"){
		alert("Please ensure your number starts with a zero");
		obj.select();
		return false;
	}
	else if(objvalue.length<8){
		alert("Please ensure your number has at least 8 digits");
		obj.select();
		return false;
	}
	return true;
}

