/* NOTE:
prerequisite js file: common.js:
external functions called below:
1. trimstr - strip off blank characters
2. isimage - verifies if file is an image
*/
function requiredFieldValidator() {
	
	var other  = document.getElementsByName('Subject');
	var specs  = document.getElementById('Specify').value;
	var name  = document.getElementById('Name').value;
	var tel = document.getElementById('Tel').value;
	var email = document.getElementById('Email').value;
	
	//var frm = document.getElementById('recommend');	
	var valid = true;
	
	var reEmail = new RegExp('[\\w\\.-]+(\\+[\\w-]*)?@([\\w-]+\\.)+[\\w-]+');
	//alert('imhere2');
	if (other[3].checked == true) {
		if (specs == '') {
			document.getElementById('lblErrSpecify').innerHTML = 'Please specify a subject.';
			valid = false;
		} else 
			document.getElementById('lblErrSpecify').innerHTML = '';
	} else
		document.getElementById('lblErrSpecify').innerHTML = '';
	
if (name == '') {
		document.getElementById('lblErrName').innerHTML = 'Name is required.';
		valid = false;
	} else 
		document.getElementById('lblErrName').innerHTML = '';

	if (tel == '') {
		document.getElementById('lblErrTel').innerHTML = 'Telephone number is required.';
		valid = false;
	} else 
		document.getElementById('lblErrTel').innerHTML = '';

	if (email == '') {
		document.getElementById('lblErrEmail').innerHTML = 'Email is required.';
		valid = false;
	} else {
		document.getElementById('lblErrEmail').innerHTML = '';
			
		if (!email.match(reEmail)){
			valid = false;
			document.getElementById('lblErrEmail').innerHTML = 'Email must be valid.';
		}
		
	}

	return valid;
}

//SET LOGIN ACTION
function setloginaction(mode) {	
	var frm    =document.getElementById('frmlogin');
	var action =document.getElementById('action');
	var returl =document.getElementById('returl');		
	switch (mode) {
		case 'login':				
			if (isvalidform(frm.name)) {				
				action.value=mode;				
			    frm.submit();
			}
			break;
	   	case 'cancel':			
			document.location.href=returl.value;
		    break;								   
	} return false;
}
//SET CATEGORY ACTION
function setcategoryaction(mode) {	
	var frm    =document.getElementById('frmcategory');
	var action =document.getElementById('action');
	var returl =document.getElementById('returl');	
	switch (mode) {
		case 'save':			
			if (isvalidform(frm.name)) {
				action.value=mode;
			    frm.submit();
			} break;
	    case 'delete':
			if (confirm('Are you sure you want to delete this category? This action cannot be undone.')) {
				action.value=mode;
				frm.submit();
			} break;			
		case 'cancel':			
			document.location.href=returl.value;
			action.value=mode;				
			break;
	} return false;
}
//SET PRODUCT ACTION
function setproductaction(mode) {
	var frm    =document.getElementById('frmproduct');
	var action =document.getElementById('action');
	var returl =document.getElementById('returl');	
	switch (mode) {
		case 'save':			
			if (isvalidform(frm.name)) {				
				action.value=mode;				
			    frm.submit();
			} break;
	    case 'delete':
			if (confirm('Are you sure you want to delete this product?  This action cannot be undone.')) {
				action.value=mode;
				frm.submit();
			} break;			
		case 'cancel':			
			document.location.href=returl.value;
			action.value=mode;				
			break;
		case 'addphoto':
			action.value=mode;	
			frm.submit();
			break;	
	} return false;
}
//SET ATTRIBUTE ACTION
function setattributeaction(mode) {
	var frm    =document.getElementById('frmattribute');
	var action =document.getElementById('action');
	var returl =document.getElementById('returl');
	switch (mode) {
		case 'save':			
			if (isvalidform(frm.name)) {				
				action.value=mode;				
			    frm.submit();
			} break;
	    case 'delete':
			if (confirm('Are you sure you want to delete this attribute?  This action cannot be undone.')) {
				action.value=mode;
				frm.submit();
			} break;			
		case 'cancel':			
			document.location.href=returl.value;
			action.value=mode;				
			break;
	} return false;
}
//SET USER ACTION
function setuseraction(mode) {
	var frm = document.getElementById('frmuser');
	var action = document.getElementById('action');
	var useraction = document.getElementById('useraction');
	var returl = document.getElementById('returl');
	var subject = document.getElementById('Subject');
	switch (mode) {
		case 'save':			
			if (isvalidform(frm.name)) {				
				action.value=mode;				
			    frm.submit();
			} break;
	    case 'delete':
			if (confirm('Are you sure you want to delete this user?  This action cannot be undone.')) {
				action.value=mode;
				frm.submit();
			} break;			
		case 'cancel':			
			document.location.href=returl.value;
			action.value=mode;				
			break;
		case 'send':
			if (requiredFieldValidator()) {
				useraction.value=mode;
				frm.submit();
				//alert ('hey');
			}
			break;
	} return false;
}
//
function setregisteraction(mode) {
	var frm    =document.getElementById('frmregistration');
	var action =document.getElementById('registeraction');
	var returl =document.getElementById('returl');
	switch (mode) {
		case 'save':			
			if (isvalidform(frm.name)) {				
				action.value=mode;				
			    frm.submit();
			} break;	    		
		case 'cancel':			
			document.location.href=returl.value;
			action.value=mode;				
			break;
	} return false;
}

//FIELD VALIDATORS
function isvalidform(name) {	
	var valid=true;	
	switch (name) {		
		case 'frmlogin':
			var username =document.getElementById('txtusername').value;		
			var password =document.getElementById('txtpassword').value;	
			if (common.trimStr(username) == '' || common.trimStr(password) == '' ) {
				document.getElementById('divlogin').innerHTML='* Blank field(s)!';
				valid=false;
			} else document.getElementById('divlogin').innerHTML='';
			break;	
		case 'frmcategory':
			var categoryname =document.getElementById('txtcategoryname').value;
			var sortorder    =document.getElementById('txtsortorder').value;				
			if (common.trimStr(categoryname)=='') {
				document.getElementById('lblcategoryname').innerHTML='Enter category name.';
				valid=false;
			} else document.getElementById('lblcategoryname').innerHTML='';											
			if (common.trimStr(sortorder)!='') {
				if (!common.isInt(sortorder)) {
					document.getElementById('lblsortorder').innerHTML='Enter a number.';
					valid=false;
				} else document.getElementById('lblsortorder').innerHTML='';
			} else document.getElementById('lblsortorder').innerHTML='';			
			break;
		case 'frmproduct':
			var productname =document.getElementById('txtproductname').value;
			var sortorder   =document.getElementById('txtsortorder').value;	
			var userfile    =document.getElementById('userfile').value;
			var oldprice    =document.getElementById('txtoldprice').value;
			var unitprice   =document.getElementById('txtunitprice').value;
			if (common.trimStr(productname) == '') {
				document.getElementById('lblproductname').innerHTML='Enter product name.';
				valid=false;
			} else document.getElementById('lblproductname').innerHTML='';				
			if (common.trimStr(userfile) != '') {
				if (!common.isImage(userfile)) {
					document.getElementById('lbluserfile').innerHTML='* Please load image in valid format (*.jpg, *.gif or *.png).';
					valid=false;
				} else document.getElementById('lbluserfile').innerHTML='';
			} else document.getElementById('lbluserfile').innerHTML='';				
			if (common.trimStr(sortorder) != '') {
				if (!common.isInt(sortorder)) {
					document.getElementById('lblsortorder').innerHTML='Enter a number.';
					valid=false;
				} else document.getElementById('lblsortorder').innerHTML='';
			} else document.getElementById('lblsortorder').innerHTML='';	
			/*if (common.trimStr(oldprice) != '') {
				if (!common.isCurrency(oldprice)) {
					document.getElementById('lbloldprice').innerHTML='* Please enter a valid currency value.';
					valid=false;
				} else document.getElementById('lbloldprice').innerHTML=''; 
			} else document.getElementById('lbloldprice').innerHTML='';	
			if (common.trimStr(unitprice) != '') {
				if (!common.isCurrency(unitprice)) {
					document.getElementById('lblunitprice').innerHTML='* Please enter a valid currency value.';
					valid=false;
				} else document.getElementById('lblunitprice').innerHTML=''; 
			} else document.getElementById('lblunitprice').innerHTML='';*/	
			break;
		case 'frmattribute':
			var name         =document.getElementById('txtattributename').value;
			var friendlyname =document.getElementById('txtfriendlyname').value;
			var sortorder    =document.getElementById('txtsortorder').value;				
			if (common.trimStr(name)=='') {
				document.getElementById('lblattributename').innerHTML='Enter attribute name.';
				valid=false;
			} else document.getElementById('lblattributename').innerHTML='';	
			if (common.trimStr(friendlyname)=='') {
				document.getElementById('lblfriendlynamename').innerHTML='Enter attribute friendly name.';
				valid=false;
			} else document.getElementById('lblfriendlynamename').innerHTML='';	
			if (common.trimStr(sortorder)!='') {
				if (!common.isInt(sortorder)) {
					document.getElementById('lblsortorder').innerHTML='Enter a number.';
					valid=false;
				} else document.getElementById('lblsortorder').innerHTML='';
			} else document.getElementById('lblsortorder').innerHTML='';			
			break;
		case 'frmuser':
			var username  	  =document.getElementById('txtusername').value;
			var userid    	  =document.getElementById('userid').value;
			var password  	  =document.getElementById('txtpassword').value;
			var cpassword 	  =document.getElementById('txtcpassword').value;
			var email	  	  =document.getElementById('txtemail').value;
			var firstname 	  =document.getElementById('txtfirstname').value;
			var lastname      =document.getElementById('txtlastname').value;
			var citytown	  =document.getElementById('txtcitytown').value;
			var stateprovince =document.getElementById('txtstateprovince').value;
			var zipcode	      =document.getElementById('txtzipcode').value;
			var contactno     =document.getElementById('txtcontactno').value;
			if (common.trimStr(username)=='') {
				document.getElementById('lblusername').innerHTML='Enter Username.';
				valid=false;
			} else document.getElementById('lblusername').innerHTML='';
			if (common.trimStr(userid)==0) { // require password only when adding new user		
				if (common.trimStr(password)=='') {
					document.getElementById('lblpassword').innerHTML='Enter Password.';
					valid=false;
				} else document.getElementById('lblpassword').innerHTML='';
				if (common.trimStr(cpassword)=='') {
					document.getElementById('lblcpassword').innerHTML='Please confirm Password.';
					valid=false;
				} else if (password!=cpassword) {
					document.getElementById('lblcpassword').innerHTML='Passwords do not match!';
				} else document.getElementById('lblcpassword').innerHTML='';
			} else { // else if updating existing user
				if (common.trimStr(password)!=''||common.trimStr(cpassword)!='') { //if password is entered on update, check passwords
					if (common.trimStr(cpassword)=='') {
						document.getElementById('lblcpassword').innerHTML='Please confirm Password.';
						valid=false;
					} else if (password!=cpassword) {
						document.getElementById('lblcpassword').innerHTML='Passwords do not match!';
						valid=false;
					} else document.getElementById('lblcpassword').innerHTML='';
				}
			}
			if (!common.isEmpty(email)) {				
				if (!common.isEmail(email)) {
					document.getElementById('lblemail').innerHTML='Enter a valid email.';
					valid=false;
				} else document.getElementById('lblemail').innerHTML='';
			} else {
				document.getElementById('lblemail').innerHTML='Enter email address.';
				valid=false;
			}
			if (common.trimStr(firstname)=='') {
				document.getElementById('lblfirstname').innerHTML='Enter first name.';
				valid=false;
			} else document.getElementById('lblfirstname').innerHTML='';
			if (common.trimStr(lastname)=='') {
				document.getElementById('lbllastname').innerHTML='Enter last name.';
				valid=false;
			} else document.getElementById('lbllastname').innerHTML='';
			if (common.trimStr(citytown)=='') {
				document.getElementById('lblcitytown').innerHTML='Enter city name.';
				valid=false;
			} else document.getElementById('lblcitytown').innerHTML='';
			if (common.trimStr(stateprovince)=='') {
				document.getElementById('lblstateprovince').innerHTML='Enter state.';
				valid=false;
			} else document.getElementById('lblstateprovince').innerHTML='';
			if (common.trimStr(zipcode)=='') {
				document.getElementById('lblzipcode').innerHTML='Enter zip code.';
				valid=false;
			} else document.getElementById('lblzipcode').innerHTML='';
			
			if (common.trimStr(contactno)=='') {
				document.getElementById('lblcontactno').innerHTML='Enter a contact number.';
				valid=false;
			} else document.getElementById('lblcontactno').innerHTML='';
			break;
		case 'frmregistration':
			
			var username  	  = document.getElementById('txtnusername').value;
			var password  	  =document.getElementById('txtnpassword').value;			
			var cpassword 	  =document.getElementById('txtcpassword').value;
			var email	  	  =document.getElementById('txtmail').value;
			var firstname 	  =document.getElementById('txtfirstname').value;
			var lastname      =document.getElementById('txtlastname').value;
			var citytown	  =document.getElementById('txtcitytown').value;
			var stateprovince =document.getElementById('txtstateprovince').value;
			var zipcode	      =document.getElementById('txtzipcode').value;
			var contactno     =document.getElementById('txtcontactno').value;
			if (common.trimStr(username)=='') {
				document.getElementById('lblusername').innerHTML='Enter Username.';
				valid=false;
			} else document.getElementById('lblusername').innerHTML='';
			
			if (common.trimStr(password)=='') {
				document.getElementById('lblpassword').innerHTML='Enter Password.';
				valid=false;
			} else document.getElementById('lblpassword').innerHTML='';
			if (common.trimStr(cpassword)=='') {
				document.getElementById('lblcpassword').innerHTML='Please confirm Password.';
				valid=false;
			} else if (password!=cpassword) {
				document.getElementById('lblcpassword').innerHTML='Passwords do not match!';
				valid=false;
			} else document.getElementById('lblcpassword').innerHTML='';
			
			if (!common.isEmpty(email)) {				
				if (!common.isEmail(email)) {
					document.getElementById('lblemail').innerHTML='Enter a valid email.';
					valid=false;
				} else document.getElementById('lblemail').innerHTML='';
			} else {
				document.getElementById('lblemail').innerHTML='Enter email address.';
				valid=false;
			}
			if (common.trimStr(firstname)=='') {
				document.getElementById('lblfirstname').innerHTML='Enter first name.';
				valid=false;
			} else document.getElementById('lblfirstname').innerHTML='';
			if (common.trimStr(lastname)=='') {
				document.getElementById('lbllastname').innerHTML='Enter last name.';
				valid=false;
			} else document.getElementById('lbllastname').innerHTML='';
			if (common.trimStr(citytown)=='') {
				document.getElementById('lblcitytown').innerHTML='Enter city name.';
				valid=false;
			} else document.getElementById('lblcitytown').innerHTML='';
			if (common.trimStr(stateprovince)=='') {
				document.getElementById('lblstateprovince').innerHTML='Enter state.';
				valid=false;
			} else document.getElementById('lblstateprovince').innerHTML='';
			if (common.trimStr(zipcode)=='') {
				document.getElementById('lblzipcode').innerHTML='Enter zip code.';
				valid=false;
			} else document.getElementById('lblzipcode').innerHTML='';
			
			if (common.trimStr(contactno)=='') {
				document.getElementById('lblcontactno').innerHTML='Enter a contact number.';
				valid=false;
			} else document.getElementById('lblcontactno').innerHTML='';
			break;	
		case 'frmresetpassword':
			var emailadd=document.getElementById('txtemail');
			var msg='';
			if (!common.isEmpty(emailadd.value)) {				
				if (!common.isEmail(emailadd.value)) {				
					valid=false;			
					msg=msg+'* Email invalid.';					
				}
			} else {
				valid=false;
				msg=msg+'* Email required.';
			}						
			document.getElementById('divreset').innerHTML=msg;					
			return valid;
			break;
		case 'frmchangepassword':
			var txtcurrentpassword =document.getElementById('txtcurrentpassword').value;
			var newpassword        =document.getElementById('txtnewpassword').value;
			var cnewpassword       =document.getElementById('txtcnewpassword').value;
			if (common.trimStr(txtcurrentpassword)=='') {
				document.getElementById('lblcurrentpassword').innerHTML='Enter current password.';
				valid=false;
			} else document.getElementById('lblcurrentpassword').innerHTML='';
			if (common.trimStr(newpassword)=='') {
				document.getElementById('lblnewpassword').innerHTML='Enter new password.';
				valid=false;
			} else document.getElementById('lblnewpassword').innerHTML='';
			if (common.trimStr(cnewpassword)=='') {
				document.getElementById('lblcnewpassword').innerHTML='Please confirm new password.';
				valid=false;
			} else if (newpassword!=cnewpassword) {
				document.getElementById('lblcnewpassword').innerHTML='Passwords do not match!';
				valid=false;
			} else document.getElementById('lblcnewpassword').innerHTML='';				
			return valid;
			break;
		case 'frmprofile':
			var email	  	  =document.getElementById('txtemail').value;
			var firstname 	  =document.getElementById('txtfirstname').value;
			var lastname      =document.getElementById('txtlastname').value;
			var citytown	  =document.getElementById('txtcitytown').value;
			var stateprovince =document.getElementById('txtstateprovince').value;
			var zipcode	      =document.getElementById('txtzipcode').value;
			var contactno     =document.getElementById('txtcontactno').value;
			if (!common.isEmpty(email)) {				
				if (!common.isEmail(email)) {
					document.getElementById('lblemail').innerHTML='Enter a valid email.';
					valid=false;
				} else document.getElementById('lblemail').innerHTML='';
			} else {
				document.getElementById('lblemail').innerHTML='Enter email address.';
				valid=false;
			}
			if (common.trimStr(firstname)=='') {
				document.getElementById('lblfirstname').innerHTML='Enter first name.';
				valid=false;
			} else document.getElementById('lblfirstname').innerHTML='';
			if (common.trimStr(lastname)=='') {
				document.getElementById('lbllastname').innerHTML='Enter last name.';
				valid=false;
			} else document.getElementById('lbllastname').innerHTML='';
			if (common.trimStr(citytown)=='') {
				document.getElementById('lblcitytown').innerHTML='Enter city name.';
				valid=false;
			} else document.getElementById('lblcitytown').innerHTML='';
			if (common.trimStr(stateprovince)=='') {
				document.getElementById('lblstateprovince').innerHTML='Enter state.';
				valid=false;
			} else document.getElementById('lblstateprovince').innerHTML='';
			if (common.trimStr(zipcode)=='') {
				document.getElementById('lblzipcode').innerHTML='Enter zip code.';
				valid=false;
			} else document.getElementById('lblzipcode').innerHTML='';
			
			if (common.trimStr(contactno)=='') {
				document.getElementById('lblcontactno').innerHTML='Enter a contact number.';
				valid=false;
			} else document.getElementById('lblcontactno').innerHTML='';
			break;
		case 'frmcart':
			var id=document.getElementById('ajaxvar').value; //productid
			var quantity=document.getElementById('txtquantity_'+id).value;
			if (common.trimStr(quantity)=='' || common.trimStr(quantity)==0 || !common.isInt(common.trimStr(quantity))) {
				document.getElementById('lblproduct_'+id).innerHTML='* Qty invalid.';
				document.getElementById('iscartvalid').value=0;
				valid=false;
			} else {
				document.getElementById('lblproduct_'+id).innerHTML='';
				document.getElementById('iscartvalid').value=1; 
			}
			break;
	} return valid;
}

//check loaded file on input type file
function checktype() {
	var userfile=document.getElementById('userfile').value;		
	if (common.trimStr(userfile) != '') {
		if (!common.isImage(userfile)) {
			document.getElementById('lbluserfile').innerHTML='* Please load image in valid format (*.jpg, *.gif or *.png).';
			document.getElementById('lnkaddphoto').style.display='none';
			document.getElementById('lnkclearphoto').style.display='';
			document.getElementById('rowimgcaption').style.display='none';
			valid=false;
		} else {
			document.getElementById('lbluserfile').innerHTML='';
			document.getElementById('lnkaddphoto').style.display='';
			document.getElementById('lnkclearphoto').style.display='';
			document.getElementById('rowimgcaption').style.display='';
		}
	}
}
function checkfile() {
	var userfile=document.getElementById('userfile').value;		
	if (common.trimStr(userfile) != '') {
		if (!common.isImage(userfile)) {
			document.getElementById('lbluserfile').innerHTML='* Please load image in valid format (*.jpg, *.gif or *.png).';			
			valid=false;
		} else document.getElementById('lbluserfile').innerHTML='';
	}
}
//deletes table row
function deleterow(mode,itemid,returl) {
	if (confirm('Are you sure you want to delete this '+mode+'? This action cannot be undone.')) {
		switch (mode) {
			case "attribute":
				window.location = "myaccount.php?c=attributeedit&action=delete&attributeid="+itemid+"&returl="+returl;
				break;
			case "product":
				window.location = "myaccount.php?c=productedit&action=delete&pid="+itemid+"&returl="+returl;
				break;
			case "category":
				window.location = "myaccount.php?c=categoryedit&action=delete&catid="+itemid+"&returl="+returl;
				break;
			case "user":
				window.location = "myaccount.php?c=useredit&action=delete&userid="+itemid+"&returl="+returl;
				break;
		}
	}
}