// JavaScript Document
/*********************************************** 
* Required field(s) validation  
***********************************************/ 
 
function formCheck(formobj){ 
	// Enter name of mandatory fields 
	var fieldRequired = Array("size", "color", "ltid", "lmid", "loid", "lcid","vwitem3","phone","email", "verify", "patient_name", "patient_birth", "patient_name","patient_phone", "use_agree", "over_18",  "review_name", "review_location", "review_email", "email_yes", "review_headline", "review_comment"); 
	// Enter field description to appear in the dialog box 
	var fieldDescription = Array("Please Select a Size", "Please Select a Color", "Select Frame Only or Lens Type", "Select Lens Material", "Select Tint, Polarized or Transitions® for Lens", "Select Lens Coating", "Select Anti-Reflective Coating", "Please Enter Your Phone Number", "Please Enter an Email", "How will we verify your prescription?", "Please Provide Patient Name", "Please Provide Patient Date of Birth", "Please Provide Doctor's Name", "Please Provide Doctor's Phone Number", "Please Select I agree with the use agreement", "Please Select I am over 18 years of age", "Please input something for your Name", "Please input something for your Location", "Please input something for your Email Address", "Please let us know if others can privately email you? ( Yes or No )", "Please input something for your Headline", "Please input something for your Comment"); 
	// dialog message 
	var alertMsg = "Please complete the following fields:\n"; 
	 
	var l_Msg = alertMsg.length; 
	var passCompare = null; 
	for (var i = 0; i < fieldRequired.length; i++){ 
		var obj = formobj.elements[fieldRequired[i]]; 
		if (obj){ 
			switch(obj.type){ 
			case "select-one": 
				if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == "" || obj.selectedIndex == 0 ){ 
					alertMsg += " - " + fieldDescription[i] + "\n"; 
				} 
                 
				break; 
			case "select-multiple": 
				if (obj.selectedIndex == -1){ 
					alertMsg += " - " + fieldDescription[i] + "\n"; 
				} 
				break; 
			case "text": 
			case "textarea": 
				if (obj.value == "" || obj.value == null){ 
					alertMsg += " - " + fieldDescription[i] + "\n"; 
				} 
                else if (obj.name == "email" || obj.name == "review_email") 
				{ 
				   if(checkmail(obj) == false) 
				      alertMsg += " - " + "Email is not valid" + "\n"; 
				}                 
 				break; 
             case "password": 
				if (obj.value == "" || obj.value == null){ 
				   alertMsg += " - " + fieldDescription[i] + "\n"; 
				} 
				else if (obj.name == "password1")  
				{ 
				   passCompare = obj.value; 
				} 
				else if (obj.name == "password2") 
				{ 
                     if (obj.value != passCompare) 
				        alertMsg += " - " + "Passwords Do Not Match" + "\n"; 
				} 
				break; 
           case "checkbox": 
				if (obj.name == "terms" && !obj.checked) 
				{
                   alertMsg += " - " + "Terms must be agreed to." + "\n"; 
				}
				else if (obj.name == "use_agree" && !obj.checked) 
				{
                   alertMsg += " - " + "Terms must be agreed to." + "\n"; 
				}
				else if (obj.name == "over_18" && !obj.checked) 
				{
                   alertMsg += " - " + "Must be over 18." + "\n"; 
				}
                else if (obj.checked ) 
				   bTitle = true; 
				 
			default: 
			}  
			if (obj.type == undefined){ 
				var blnchecked = false; 
				for (var j = 0; j < obj.length; j++){ 
					if (obj[j].checked){ 
						blnchecked = true; 
					} 
				} 
				if (!blnchecked){ 
					alertMsg += " - " + fieldDescription[i] + "\n"; 
				}  
			} 
		} 
	} 
	if (alertMsg.length == l_Msg){ 
		return true; 
	}else{ 
		alert(alertMsg); 
		return false; 
	}  
} 
 
/*********************************************** 
* Email Validation script 
***********************************************/ 
 
var emailfilter=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i 
 
function checkmail(e){ 
var returnval=emailfilter.test(e.value) 
if (returnval==false){ 
//alert("Please enter a valid email address.") 
e.select() 
} 
return returnval 
} 

		
var horizontal_offset="9px" //horizontal offset of hint box from anchor link

/////No further editting needed

var vertical_offset="0" //horizontal offset of hint box from anchor link. No need to change.
var ie=document.all
var ns6=document.getElementById&&!document.all

function getposOffset(what, offsettype){
var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
var parentEl=what.offsetParent;
while (parentEl!=null){
totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
parentEl=parentEl.offsetParent;
}
return totaloffset;
}

function iecompattest(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function clearbrowseredge(obj, whichedge){
var edgeoffset=(whichedge=="rightedge")? parseInt(horizontal_offset)*-1 : parseInt(vertical_offset)*-1
if (whichedge=="rightedge"){
var windowedge=ie && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-30 : window.pageXOffset+window.innerWidth-40
dropmenuobj.contentmeasure=dropmenuobj.offsetWidth
if (windowedge-dropmenuobj.x < dropmenuobj.contentmeasure)
edgeoffset=dropmenuobj.contentmeasure+obj.offsetWidth+parseInt(horizontal_offset)
}
else{
var windowedge=ie && !window.opera? iecompattest().scrollTop+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18
dropmenuobj.contentmeasure=dropmenuobj.offsetHeight
if (windowedge-dropmenuobj.y < dropmenuobj.contentmeasure)
edgeoffset=dropmenuobj.contentmeasure-obj.offsetHeight
}
return edgeoffset
}

function showhint(menucontents, obj, e, tipwidth){
if ((ie||ns6) && document.getElementById("hintbox")){
dropmenuobj=document.getElementById("hintbox")
dropmenuobj.innerHTML=menucontents
dropmenuobj.style.left=dropmenuobj.style.top=-500
if (tipwidth!=""){
dropmenuobj.widthobj=dropmenuobj.style
dropmenuobj.widthobj.width=tipwidth
}
dropmenuobj.x=getposOffset(obj, "left")
dropmenuobj.y=getposOffset(obj, "top")
dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj, "rightedge")+obj.offsetWidth+"px"
dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj, "bottomedge")+"px"
dropmenuobj.style.visibility="visible"
obj.onmouseout=hidetip
}
}

function hidetip(e){
dropmenuobj.style.visibility="hidden"
dropmenuobj.style.left="-500px"
}

function createhintbox(){
var divblock=document.createElement("div")
divblock.setAttribute("id", "hintbox")
document.body.appendChild(divblock)
}

if (window.addEventListener)
window.addEventListener("load", createhintbox, false)
else if (window.attachEvent)
window.attachEvent("onload", createhintbox)
else if (document.getElementById)
window.onload=createhintbox
