/*  Name: utillities.js */
function logonUser(sha1Store,user,pass){ 	
	document.getElementById(sha1Store).value='';

	if(requiredField(user,'User Name','error',is_text(document.getElementById(user).value)) && requiredField(pass,'Password','error',is_text(document.getElementById(pass).value))){
		document.getElementById(sha1Store).value = hex_sha1(document.getElementById(user).value.toLowerCase() + document.getElementById(pass).value.toLowerCase());
		document.getElementById(pass).disabled=true;
		return true;
	}
	return false;
} 
function register(){
	if(requiredField('firstName','','warn',is_text(document.getElementById('firstName').value)) && requiredField('lastName','','warn',is_text(document.getElementById('lastName').value)) && requiredField('password','','warn',is_text(document.getElementById('password').value)) && requiredField('verifyPassword','','warn',is_match(document.getElementById('password').value,document.getElementById('verifyPassword').value))){
	 	return true;
	}
	else{
		alert('Please fill out all required fields!');
		return false;
	}
}

function loadCreditCard(){ 
	document.getElementById('CardType').value = document.getElementById('editType').value;
  	document.getElementById('state').value = document.getElementById('editState').value;
  	document.getElementById('country').value = document.getElementById('editCountry').value;
  	document.getElementById('ExpMon').value = document.getElementById('editMonth').value;
  	document.getElementById('ExpYear').value = document.getElementById('editYear').value;

}
function checkOut(){
	document.getElementById('rm').value='checkout';
	document.getElementById('shoppingCart').submit();
} 
function removeItem(){
	document.getElementById('rm').value='removeItems';
	document.getElementById('shoppingCart').submit();
}
function updateCart(){
	document.getElementById('rm').value='update';
	document.getElementById('shoppingCart').submit();
}
function recover(){
	if(document.getElementById('email')){
		return location.href='/Account?rm=recover&email='+document.getElementById('email').value;
	}
}
function validateCvn(){
	if(document.getElementById('CardType').value == 'AmExCard'){ 
	  	if(document.getElementById('cvn').value.length == 4){
			return true;
		}
		else{
			return false;
		} 
	}
	else{ 
		if(document.getElementById('cvn').value.length == 3){
			return true;
		}
		else{
			return false;
		}
	}
}
function loadCatalog(){
	document.getElementById('uom').value=document.getElementById('uomEdit').value;
	document.getElementById('itemMaster').value=document.getElementById('itemMasterEdit').value;
	document.getElementById('requiresItemAlias').value=document.getElementById('requiresItemAliasEdit').value;
	
}
function getCookie(name) {
    var start = document.cookie.indexOf(name+"=");
    var len = start+name.length+1;
    if ((!start) && (name != document.cookie.substring(0,name.length))) return null;
    if (start == -1) return null;
    var end = document.cookie.indexOf(";",len);
    if (end == -1) end = document.cookie.length;
    return unescape(document.cookie.substring(len,end));
}
function clean(field){
	var num = document.getElementById(field).value;
	num = num.replace(/[^0-9.]/g,"");
	document.getElementById(field).value=num;
}
function emailThis(){
	if(requiredField('yourEmail','','warn',is_email(document.getElementById('yourEmail').value)) && requiredField('toEmail','','warn',is_email(document.getElementById('toEmail').value)) ){
		return true;
	}
	else{
		alert('Please fill out all required fields!');
		return false; 
	}
}
function quote(){
	if(requiredField('fullName','','warn',is_text(document.getElementById('fullName').value)) && requiredField('email','','warn',is_text(document.getElementById('email').value)) && requiredField('fullName','','warn',is_text(document.getElementById('subject').value)) && requiredField('fullName','','warn',is_text(document.getElementById('body').value) ) && requiredField('location','','warn',is_text(document.getElementById('location').value) )){
		return true;
	}
	else{
		alert('Please fill out all required fields!');
		return false; 
	}
}

function contactUs(){
	if(requiredField('fullName','','warn',is_text(document.getElementById('fullName').value)) && requiredField('email','','warn',is_text(document.getElementById('email').value)) && requiredField('fullName','','warn',is_text(document.getElementById('subject').value)) && requiredField('fullName','','warn',is_text(document.getElementById('body').value))){
		return true;
	}
	else{
		alert('Please fill out all required fields!');
		return false; 
	}
}
function returnsSupport(){
	if(requiredField('body','','warn',is_text(document.getElementById('body').value))){
		return true;
	}
	else{
		alert('Please fill out all required fields!');
		return false; 
	}
	
}
function requiredField(objId,fieldName,errorType,validation){ 
	
   var hostBase = location.protocol+'//'+location.hostname+'/';

	if(!validation){
		if(errorType == 'warn'){
			var mess ='';
			if(objId == 'email'){
			  mess='<br/><small style="color:red;">Not a vaild email address!</small>'
			}
			document.getElementById(objId + '-ui').innerHTML='&nbsp;<img src="'+hostBase+'img/error-small.gif"/>' + mess;
		}
		else if(errorType == 'match'){
			document.getElementById(objId + '-ui').innerHTML='&nbsp;<img src="'+hostBase+'img/error-small.gif"/><br/><small style="color:red;">Password did not match!</small>';
			document.getElementById(objId).value='';
			document.getElementById('password').value='';
			
			document.getElementById('password').focus();
 		}
		return false;

	}
	else{
	  if(errorType == 'warn'){
		 	
			document.getElementById(objId + '-ui').innerHTML='&nbsp;<img src="'+hostBase+'img/pass-small.gif"/>';
		}
		else if(errorType == 'match'){
			document.getElementById(objId + '-ui').innerHTML='&nbsp;<img src="'+hostBase+'img/pass-small.gif"/>';
		}
		return true;
	}
}
function check(theElement) {
	for (var i = 0; i < document.shoppingCart.remove.length; i++){
		if(document.shoppingCart.remove[i].type == 'checkbox') { 
   		document.shoppingCart.remove[i].checked = theElement.checked;
  		}
	}
}
function aliasTitle(){
	
	var str = document.getElementById("title").value
	str = str.replace(/ /g,"_");
	str = str.replace(/[^a-zA-Z0-9_]/g,"");
	
   //str = str.replace(/\'|\<|\>|\{|\}|\(|\)|\%|\^|\#|\@|\!|\*|\=|\"|\&|\$|\+|\[|\]|\?|\:|\,/g,"");
	document.getElementById('alias').value=str;
	
}
function aliasHeading(){
	
	var str = document.getElementById("heading").value
	str = str.replace(/ /g,"_");
	str = str.replace(/[^a-zA-Z0-9_]/g,"");
	
   //str = str.replace(/\'|\<|\>|\{|\}|\(|\)|\%|\^|\#|\@|\!|\*|\=|\"|\&|\$|\+|\[|\]|\?|\:|\,/g,"");
	document.getElementById('listReference').value=str;
	
}
function aliasDescription(){ 
	if(!document.getElementById('urlAlias').value){
		var str = document.getElementById("shortDescription").value 
		str = str.replace(/ /g,"_");
		str = str.replace(/[^a-zA-Z0-9_]/g,"");
   	//str = str.replace(/\'|\<|\>|\{|\}|\(|\)|\%|\^|\#|\@|\!|\*|\=|\"|\&|\$|\+|\[|\]|\?|\:|\,/g,"");
		document.getElementById('urlAlias').value=str;
	}
}
function is_match(pass, verfiy){
	if(pass == verfiy){
		return true;
	}
	return false;
}
function is_length(fieldSize,str){
		if(str.length>fieldSize){
			return true;
		}
		//else if(str.length==0){
		//	return true;
		//}
		return false;
}
function show(divId){
	if(document.getElementById(divId).className=="show"){
		document.getElementById(divId).className ='hide';
	} 
	else{
		document.getElementById(divId).className ='show';
		
	}
}
function formatCurrency(num) {
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
	num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
	cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+','+
	num.substring(num.length-(4*i+3));
	return (((sign)?'':'-') + num);
}

function is_any(str) {
	return (str.length > 0);
}
function isPostalCode(postalCode) { 
	return /^(\d{5}|\d{9}|\d{5}-\d{4}|[a-z]\d[a-z]\s*\d[a-z]\d)$/i.test(postalCode);
}

function is_text(str) {
	var re = /^[a-zA-Z0-9,\.\-_@\S\s]+$/; 

	return re.test(str);
}
//Close enough
function is_email(str) {
	var re = /^\S+@\S+\.\S+$/;
	return re.test(str);
}
function is_number(str) {
	if (str.length == 0) { return false; } 
	str = str.replace(/,/, ".");
	return !isNaN(str);
}

function is_float(str) {
	str = str.replace(/,/,"");
	return (parseFloat(str)==str);
}
function is_rfloat(str) {
	str = str.replace(/,/,".");
	return (parseFloat(str)==str);
}

function is_int(str) {
	var re = /^\d+$/;
	return (parseInt(str)==str);
}

//I really don't think we need more than this.
function is_date(date) {
	var re = /^\d\d\/\d\d\/\d\d\d\d$/;
	return re.test(date);	
}

function is_phone(str) { 
	var re = /^\+?\s?\d+\s?\(?\d+\)?\s?(\d+\s?)+$/
	return re.test(str);
}

function trim(str) {
	var re = /^(\s+)(\S.+\s?\S+)(\s+)$/;
	return str.replace(re, "$2");
}
