
function Hash(){this.length=0;this.items=new Array();for(var i=0;i<arguments.length;i+=2){if(typeof(arguments[i+1])!='undefined'){this.items[arguments[i]]=arguments[i+1];this.length++;}}
this.removeItem=function(key){var value;if(typeof(this.items[key])!='undefined'){this.length--;var value=this.items[key];delete this.items[key];}
return value;}
this.getItem=function(key){return this.items[key];}
this.addItem=function(key,value){if(typeof(value)!='undefined'){if(typeof(this.items[key])=='undefined'){this.length++;}
this.items[key]=value;}
return value;}
this.hasItem=function(key){return typeof(this.items[key]);}
this.toList=function(){var outString="";for(var j in this.items){outString+="<li>"+this.items[j]+"</li>";}
return outString;}}
function isArray(obj){if(undefined!=obj.length){return true;}
else{return false;}}
var errorsHash=new Hash();function updateErrors(id,errorMessage,action){if(action=="add"){errorsHash.addItem(id,errorMessage);document.getElementById("formErrors").style.display="block";document.getElementById("formErrors").innerHTML=errorsHash.toList();}
if(action=="remove"){errorsHash.removeItem(id);document.getElementById("formErrors").style.display="block";document.getElementById("formErrors").innerHTML=errorsHash.toList();}}
function validateHttp(id,element,errorMessage){var value=element.value.toLowerCase();if(!value.match("http://")){updateErrors(id,errorMessage,"add");element.style.border="1px solid #FF1414";}
else{updateErrors(id,errorMessage,"remove");element.style.border="1px solid #7F9DB9";}
return false;}
function validateLatLng(id,element,errorMessage){var reg=/([0-9\-\.])/;var errorCount=0;for(var i=0;i<element.length;i++){var value=element[i].value;if(!reg.test(value)){updateErrors(id,errorMessage,"add");element[i].style.border="1px solid #FF1414";errorCount++;}
if(errorCount==0){updateErrors(id,errorMessage,"remove");element[i].style.border="1px solid #7F9DB9";}}
return false;}
function validateValidEmail(id,element,errorMessage){var value=element.value;var reg=/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;if(reg.test(value)==false){updateErrors(id,errorMessage,"add");element.style.border="1px solid #FF1414";}
else{updateErrors(id,errorMessage,"remove");element.style.border="1px solid #7F9DB9";}
return false;}
function validateNotBlank(id,element,errorMessage){if(isArray(element)){var errorCount=0;for(var i=0;i<element.length;i++){var value=element[i].value;if(isBlank(value)){updateErrors(id,errorMessage,"add");element[i].style.border="1px solid #FF1414";errorCount++;}
if(errorCount==0){updateErrors(id,errorMessage,"remove");element[i].style.border="1px solid #7F9DB9";}}}
else{var value=element.value;if(isBlank(value)){updateErrors(id,errorMessage,"add");element.style.border="1px solid #FF1414";}
else{updateErrors(id,errorMessage,"remove");element.style.border="1px solid #7F9DB9";}}
return false;}
function validateChecked(id,element,errorMessage){var value=element.value;if(element.checked==false){updateErrors(id,errorMessage,"add");element.style.outline="2px solid red";element.style.border="1px solid #FF1414";}
else{updateErrors(id,errorMessage,"remove");element.style.border="1px solid #7F9DB9";}
return false;}
function validateAddCamForm(form){mapLocFocus(form.lat);mapLocFocus(form.lng);validateNotBlank('webcamTitle',form.name,'Please provide a Webcam Title');validateHttp('imageURL',form.imageUrl,'Please provide a valid Webcam Image URL.');validateHttp('siteURL',form.siteUrl,'Please provide a valid Webcam Page URL.');validateNotBlank('userName',form.userName,'Please provide your name.');validateValidEmail('userEmail',form.userEmail,'Please provide a valid email address.');validateChecked('userAgreeTOS',form.userAgreeTOS,'You must agree to the Terms of Use.');validateLatLng('latlng',new Array(form.lat,form.lng),'Please click the map to set your webcam location.');if(errorsHash.length>0){window.scrollBy(0,-200);return;}
else{form.submit();}}