function autoTab(chk,len,next){
	if (window.event){
		keyPress = window.event.keyCode;
		if((chk.value.length == len) && (keyPress != 16) && (keyPress != 9)){next.focus(); }
	}
} 
function ShowHelp(helpfile)  {
    window.open(helpfile,null,"height=300,width=400,scrollbars=yes,toolbar=no,menubar=no,location=no");
}

 function toggleDivShow(divID){
 	var theDivShow = document.getElementById(divID) ;
 	theDivShow.style.display = (theDivShow.style.display == 'none') ? 'inline' : 'none' ;
 }

 function multiRegLines() {
 	var maxshow = 3;
 	var formId = document.getElementById('form1');
 	var formRegArea = document.getElementById('MultiRegInfo');
 	var multimin = formId.multimin.value;
 	var multimax = formId.multimax.value;
 	var multifee1 = formId.funrunfee.value;
 	var multifee2 = formId.funrunfee2.value;
 	var multifee3 = formId.funrunfee3.value;
 	var multilevel1 = formId.multilevel1.value;
 	var multilevel2 = formId.multilevel2.value;
 	var multilevel3 = formId.multilevel3.value;
 	if (multimin*1 > maxshow*1){ maxshow = multimin*1;}
 	if (multimax*1 < maxshow*1){ maxshow = multimax*1;}
 	var linepart1 = '<input type="text" size="20" name="multifirst"';
 	var linepart2 = '<input type="text" size="20" name="multilast"';
 	var linepart3 = '<input type="text" size="40" name="multiaddress"';
 	var linepart4 = '<input type="text" size="20" name="multicity"';
 	var linepart5 = '<input type="text" size="5" name="multistate"';
 	var linepart6 = '<input type="text" size="10" name="multizip"';
 	var linepart7m ='<input type="radio" value="M" name="multigender"';
 	var linepart7f ='<input type="radio" value="F" name="multigender"';
 	var linepart8 = '<input type="text" size="3" name="multiage"';
 	var linepart9 = '<input type="text" size="50" name="multiemail"';
 	var lineinfo = '';
// 		if (i == 1) {
 			lineinfo = '<table border="1"> <tr align=center><td></td>';
	 		lineinfo = lineinfo + '<td>Name/Address</td>';
	 		lineinfo = lineinfo + '<td nowrap>Gender/Age/Email</td></tr>';
//	 		lineinfo = lineinfo + '<td nowrap>Age<br>(on event day)</td><td>Email</td></tr>';
// 		}
 	for (var i = 1; i <= maxshow; i++) {
 		lineinfo = lineinfo + '<tr><td>'   + i + '</td>';
 		lineinfo = lineinfo + '<td nowrap><pre>';
 		lineinfo = lineinfo +     '  First:' + linepart1 + i + '> ';
 		lineinfo = lineinfo +     '   Last:' + linepart2 + i + '><br />';
 		lineinfo = lineinfo +     'Address:' + linepart3 + i + '><br />';
 		lineinfo = lineinfo +     '   City:' + linepart4 + i + '> ';
 		lineinfo = lineinfo +     ' State:'  + linepart5 + i + '> ';
 		lineinfo = lineinfo +     ' Zip:'    + linepart6 + i + '></td>';
 		lineinfo = lineinfo + '<td nowrap><pre>Gender:'+ linepart7m + i + '>MALE  ';
 		lineinfo = lineinfo +                            linepart7f + i + '>FEMALE <br />';
 		lineinfo = lineinfo +                 '   Age:'+ linepart8 + i + '>(on day of event)<br />';
 		lineinfo = lineinfo +                 ' Email:'+ linepart9 + i + '></td>';
 		lineinfo = lineinfo + '</tr>';
 	}
	formRegArea.innerHTML = lineinfo;

//alert(lineinfo);
 }
  
 function getData(dataSource, divID, retFunction) 
 { 
    var XMLHttpRequestObject = false; 

	 if (window.XMLHttpRequest) {
	   XMLHttpRequestObject = new XMLHttpRequest();
	 } else if (window.ActiveXObject) {
	   XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
 	}

   if(XMLHttpRequestObject) {
     var obj = document.getElementById(divID); 
     XMLHttpRequestObject.open("GET", dataSource); 

     XMLHttpRequestObject.onreadystatechange = function() 
     { 
       if (XMLHttpRequestObject.readyState == 4 && 
         XMLHttpRequestObject.status == 200) { 
       	   if (retFunction) {
       	   	  if (retFunction == '_TO_VALUE_') {
       	   			obj.value = XMLHttpRequestObject.responseText;
       	   		}else{
		       		retFunction(XMLHttpRequestObject.responseText); 
       	   	   }
       	   }else{
       	   	obj.innerHTML = XMLHttpRequestObject.responseText;
       	   }	 
          delete XMLHttpRequestObject;
       } 
     } 

     XMLHttpRequestObject.send(null); 
   }
 }

function checkURL(str, mode)
{
	alert(str);
	var recData = str.split('||');
	
getdata('checkurl.php?url='+str, 'PlaceHolder');
}


function changeNote(TEXT) {
document.getElementById('launchNote').innerHTML=TEXT;
}

function UpdateLaunch(submitvalue) {
 var formId = document.getElementById('update1');
 var formIsOk = true;
 var cnt = -1;
 for (var i=formId.LaunchType.length-1; i > -1; i--) {
   if (formId.LaunchType[i].checked) {cnt = i; i = -1;}
 }
 if (cnt > -1) {
   document.getElementById('Form_LaunchType').color ='';
 }else{
 	document.getElementById('Form_LaunchType').color ='red' ;
 	formIsOk = false;
 	formId.LaunchType.focus;
 }
 formIsOk = (checkField('Form_EmailConfirm'   ,formId.EmailConfirm)  && formIsOk );
 formIsOk = (checkField('Form_Email'   ,formId.Email)  && formIsOk );
 formIsOk = (checkField('Form_Phone'   ,formId.Phone)  && formIsOk);
 formIsOk = (checkField('Form_URL' ,formId.WebSite)    && formIsOk);
// formIsOk = (checkField('Form_LaunchType'   ,formId.LaunchType)  && formIsOk);
 formIsOk = (checkField('Form_LaunchDate'    ,formId.LaunchDate)   && formIsOk);
 formIsOk = (checkField('Form_LastName',formId.LastName) && formIsOk    );
 formIsOk = (checkField('Form_FirstName',formId.FirstName) && formIsOk    );
      
 if (!formIsOk){alert('Please complete all required fields.'); return false;}

 var atSign = '@';
 var emailIs = formId.Email.value;
 var atIsAt = emailIs.indexOf(atSign);
 var domainIs =emailIs.substring(atIsAt,emailIs.length);
 var dotIsAt = domainIs.indexOf('.');
 
 if (atIsAt < 1|| dotIsAt <2){alert('Invalid Email');return false;}
 if(!isPhoneNumber(formId.Phone.value)){alert('Please enter a Phone Number using XXX-XXX-XXXX format.');return false;}
 if(formId.AltPhone.value != '') {
   if(!isPhoneNumber(formId.AltPhone.value)){alert('Please enter a Mobile Phone Number using XXX-XXX-XXXXX format.');return false;}	
 }
 if (formId.EmailConfirm.value != formId.Email.value){alert('The two Email addresses do not match.'); return false;}

return false;
}



function BuildUpdateLine(FORM, QTY, ITEM, GROUPID, DESC) {
	var delim1 = '"';
	var delim2 = '","';
	var Discount = '';
	var Form1= document.getElementById(FORM);
	var TrackingID = FormFees.Tracking_ID.value;
	var DateStamp = FormFees.DateStamp.value;
	var itemValue = ITEM.value;

	if (GROUPID == "SQ_FT"){itemValue = SqFtFee ; Discount = SqFtFactor*100; }//(itemValue*1)*SqFtFactor;}
//	if(!ITEMTOTAL){ITEMTOTAL='';}
	if(DESC){itemValue = DESC;}
	var CRMLogin = fromLink;

	if(Form1.High_Miles.checked && GROUPID == 'AUTO'){ 
		itemValue = itemValue*FormFees.High_Miles.value; }
	return delim1 + FromIp + delim2 + DateStamp + delim2 + TrackingID 
	     + delim2 + QTY 
	     + delim2 + itemSKU 
	     + delim2 + itemValue 
	     + delim2 + GROUPID
	     + delim2 + "1"
	     + delim2 + ""
	     + delim2 + ""
	     + delim2 + CRMLogin
	     + delim2 + ITEM.value
	     + delim2 + Discount
	     + delim2 + ITEM.name
	     + delim1 + '^' ;
}

function checkSelectItems (SKU, oldSchool) {
	var SKU_ID = 'SKU_'+SKU;
	var QTY = 0 ;
	var SelectName = document.getElementById('PR'+SKU_ID).name ;
//	var SelectValue =document.getElementsByTagName('select');
	if (document.getElementById(SKU_ID)){	
	   QTY = document.getElementById(SKU_ID).value ;
	 }else {
	   QTY = oldSchool.value ;
	}
//		alert(SKU_ID + ' - ' + QTY);
if(document.getElementById('Fees').Tracking_ID.value == "BennTesting"){
}
	if (QTY*1 > 0){
//		return BuildOrderLine(QTY,SelectName,'') ;
		return BuildOrderLine(QTY,document.getElementById('PR'+SKU_ID),'') ;
	 }else{
	 	return '' ;
	}
	
}

function BuildUpdate() {
	var delim1 = '"';
	var delim2 = '","';
	var now = new Date();
	var FormQty= document.getElementById('GetInfo');
	var FormFees= document.getElementById('Fees');

	if(FormQty.BFPTrackingID){
	if(FormQty.BFPTrackingID.value == ''){
		FormQty.BFPTrackingID.value = FormFees.Tracking_ID.value;
	}else{
		FormFees.Tracking_ID.value = FormQty.BFPTrackingID.value;
	}
	}
	var ExtraStuff = 'IP='+FormFees.FromIP.value+'^Tracking='+FormFees.Tracking_ID.value+'^'+now+'^';
	var OrderText = '';
	var groupId = "HOME" ;
	CalcTotal(FormQty.Small_House);
//	CalcTotal(document.getElementById('SKU_1'));
	if ((document.getElementById('GrandTotal').innerHTML)*1 == 0){alert('You Have Not Selected Any Items!');return false;}

    OrderText = OrderText +checkSelectItems('1',FormQty.Apt_Condo);
    OrderText = OrderText +checkSelectItems('2',FormQty.Small_House);
    OrderText = OrderText +checkSelectItems('3',FormQty.Medium_House);
    OrderText = OrderText +checkSelectItems('4',FormQty.Large_House);
    OrderText = OrderText +checkSelectItems('5',FormQty.Giant_House);
    
/*	if (FormQty.Apt_Condo.value*1 != 0){ OrderText = OrderText +
	   BuildOrderLine(FormQty.Apt_Condo.value, FormFees.Apt_Condo, groupId);}  
	if (FormQty.Small_House.value*1 != 0){OrderText = OrderText +
	   BuildOrderLine(FormQty.Small_House.value, FormFees.Small_House, groupId); }
	if (FormQty.Medium_House.value*1!= 0){OrderText = OrderText +
	   BuildOrderLine(FormQty.Medium_House.value, FormFees.Medium_House, groupId); }
	if (FormQty.Large_House.value*1 != 0){OrderText = OrderText +
	   BuildOrderLine(FormQty.Large_House.value,FormFees.Large_House, groupId); }
	if (FormQty.Larger_House.value*1 != 0){OrderText = OrderText +
	   BuildOrderLine(FormQty.Larger_House.value,FormFees.Giant_House, groupId); }
*/
	groupId = "AUTO";
    OrderText = OrderText +checkSelectItems('6',FormQty.Small_Car);
    OrderText = OrderText +checkSelectItems('7',FormQty.Medium_Car);
    OrderText = OrderText +checkSelectItems('8',FormQty.Large_Car);
    OrderText = OrderText +checkSelectItems('9',FormQty.SUV_MiniVan);
    OrderText = OrderText +checkSelectItems('10',FormQty.Truck);

/*	if (FormQty.Hybrid_Car.value*1 != 0){OrderText = OrderText +
	   BuildOrderLine(FormQty.Hybrid_Car.value, FormFees.Small_Car, groupId); }
	if (FormQty.Economy_Car.value*1 != 0){OrderText = OrderText +
	   BuildOrderLine(FormQty.Economy_Car.value,FormFees.Medium_Car, groupId); }
	if (FormQty.Medium_Car.value*1 != 0){OrderText = OrderText +
	   BuildOrderLine(FormQty.Medium_Car.value,FormFees.Large_Car, groupId); }
	if (FormQty.Large_Car.value*1 != 0){OrderText = OrderText +
	   BuildOrderLine(FormQty.Large_Car.value,FormFees.SUV_MiniVan, groupId); }
	if (FormQty.SUV_Truck.value*1 != 0){OrderText = OrderText +
	   BuildOrderLine(FormQty.SUV_Truck.value,FormFees.Truck, groupId); }
*/
	groupId = "BUSINESS";
	if (FormQty.Office_Biz) {
	if (FormQty.Office_Biz.value*1 != 0){OrderText = OrderText +
	   BuildOrderLine(FormQty.Office_Biz.value,FormFees.Office, groupId); }
	if (FormQty.Retail_Biz.value*1 != 0){OrderText = OrderText +
	   BuildOrderLine(FormQty.Retail_Biz.value,FormFees.Retail, groupId); }
	if (FormQty.Resturant_Biz.value*1 != 0){OrderText = OrderText +
	   BuildOrderLine(FormQty.Resturant_Biz.value,FormFees.Resturant, groupId); }
	if (FormQty.Market_Biz.value*1 != 0){OrderText = OrderText +
	   BuildOrderLine(FormQty.Market_Biz.value,FormFees.Market, groupId); }
	if (FormQty.Medical_Biz.value*1 != 0){OrderText = OrderText +
	   BuildOrderLine(FormQty.Medical_Biz.value,FormFees.Medical, groupId); }
    }
	if (FormQty.TypeOfBusiness) {
		if(document.getElementById('BizCount').innerHTML*1 > 0) {
			OrderText = OrderText +
			BuildOrderLine(FormQty.BizSqFt.value,
			document.getElementById('PRSKU_'+FormQty.TypeOfBusiness.value),"SQ_FT",SqFtFee );
			OrderText = OrderText +
			BuildOrderLine(FormQty.BizLocations.value,
			document.getElementById('PRSKU_17'),groupId);

	 	}
	}

//	ExtraStuff='OrderTotal='+GrandTotal.innerHTML*1+'^'+ ExtraStuff ;
	putData('/GeneratedItems/stage1.php',FormFees.Tracking_ID.value,'w',OrderText);
//alert(FormFees.Tracking_ID.value);
	var obj=document.getElementById('BuildOrder');
	var orderId = FormFees.Tracking_ID.value; 
//	obj.href='buildorder1.php?ID=_'+orderId
	if(document.getElementById('BFPOrder')){
		document.getElementById('BFPOrder').theOrderID.value=FormFees.Tracking_ID.value;
		document.getElementById('BFPOrder').theOrderAmt.value=document.getElementById('GrandTotal').innerHTML;
		if(document.getElementById('BizCount').innerHTML*1 > 0){document.getElementById('BFPOrder').BizOrder.value ="_BIZ_";}
	}
if(FormFees.Tracking_ID.value == "BennTesting"){
	 if(!confirm(OrderText)){return false;}
}	

//	if(document.getElementById('BizCount').innerHTML*1 > 0){obj.href=obj.href+"_BIZ";}
	//+'_'+GrandTotal.innerHTML*100;

}

function CalcTotal(oItem){

	var Form1 = document.getElementById("GetInfo");
	var FormFees=document.getElementById("Fees");
	var HouseCount = 0;
	var HouseTotal = 0;
	var CarCount = 0;
	var CarTotal = 0;
	var BizCount = 0;
	var BizTotal = 0;
	var CreditCount = 0;
	var CreditTotal = 0;
	var HighMiles = 1 ;

	if (oItem != ''){
	if ((oItem.value == "0") || (oItem.value == '')) {
		oItem.value = "";
		if((oItem.name == "TypeOfBusiness") || (oItem.name == "BizLocations") || (oItem.name == "BizSqFt")){
			Form1.TypeOfBusiness.value = "";
			Form1.BizLocations.value = "";
			Form1.BizSqFt.value = "";
			SqFtFactor = 1;
		}
	}
//	if (oItem.blankVal.value == "0") {oItem.blankVal.value = ''};
	}
//	if(Form1.High_Miles.checked){ HighMiles = FormFees.High_Miles.value; }
//	alert(Form1.High_Miles.checked + " - " + HighMiles);

  if (document.getElementById('SKU_1') && document.getElementById('PRSKU_1') ) {
	HouseCount =(document.getElementById('SKU_1').value*1) + 
			(document.getElementById('SKU_2').value*1) +
			(document.getElementById('SKU_3').value*1) +
			(document.getElementById('SKU_4').value*1) +
			(document.getElementById('SKU_5').value*1) ;

			
//	HouseTotal =	((Form1.Apt_Condo.value*1)   * (FormFees.Apt_Condo.value*1)) +	
//			((Form1.Small_House.value*1) * (FormFees.Small_House.value*1)) +
//			((Form1.Medium_House.value*1) * (FormFees.Medium_House.value*1)) +
//			((Form1.Large_House.value*1) * FormFees.Large_House.value) +
//			((Form1.Larger_House.value*1)* FormFees.Giant_House.value) ;
//

	HouseTotal =((document.getElementById('SKU_1').value*1) * (document.getElementById('PRSKU_1').value*1)) +	
			((document.getElementById('SKU_2').value*1) * (document.getElementById('PRSKU_2').value*1)) +
			((document.getElementById('SKU_3').value*1) * (document.getElementById('PRSKU_3').value*1)) +
			((document.getElementById('SKU_4').value*1) * document.getElementById('PRSKU_4').value) +
			((document.getElementById('SKU_5').value*1)* document.getElementById('PRSKU_5').value) ;

	obj=document.getElementById('HouseCount');
	obj.innerHTML = HouseCount;
	obj=document.getElementById('HouseTotal');
	obj.innerHTML =sprintf("%.2f", HouseTotal);

	CarCount =	(document.getElementById('SKU_6').value  *1) + 
			(document.getElementById('SKU_7').value *1) +
			(document.getElementById('SKU_8').value *1) +
			(document.getElementById('SKU_9').value *1) +
			(document.getElementById('SKU_10').value *1) ;
			
//	CarTotal =	((Form1.Hybrid_Car.value *1)* FormFees.Small_Car.value) + 
//			((Form1.Economy_Car.value*1)* FormFees.Medium_Car.value) +
//			((Form1.Medium_Car.value *1) * FormFees.Large_Car.value) +
//			((Form1.Large_Car.value  *1)* FormFees.SUV_MiniVan.value) +
//			((Form1.SUV_Truck.value  *1)* FormFees.Truck.value) ;
//
	CarTotal =	((document.getElementById('SKU_6').value *1)* document.getElementById('PRSKU_6').value) + 
			((document.getElementById('SKU_7').value*1)* document.getElementById('PRSKU_7').value) +
			((document.getElementById('SKU_8').value*1) * document.getElementById('PRSKU_8').value) +
			((document.getElementById('SKU_9').value*1)* document.getElementById('PRSKU_9').value) +
			((document.getElementById('SKU_10').value*1)* document.getElementById('PRSKU_10').value) ;

	CarTotal = CarTotal*HighMiles ;
	obj=document.getElementById('CarCount');
	obj.innerHTML = CarCount;
	obj=document.getElementById('CarTotal');
	obj.innerHTML =sprintf("%.2f", CarTotal);

    
    if (Form1.BizLocations) {
   		if(Form1.BizSqFt.value*1 >= 50000 ){
   			alert ('Please call for a quote for a business of 50,000 sqft or more');
   			Form1.BizSqFt.value = '';
   			Form1.BizLocations.value = ''
   			Form1.TypeOfBusiness.value = '';
   		}	
    	if(Form1.TypeOfBusiness.value != ''){
    		if(Form1.BizSqFt.value == ''){Form1.BizSqFt.value = 1000;}
    		if(Form1.BizLocations.value == ''){Form1.BizLocations.value = 1;}
    		var BizLocPrice = (document.getElementById('PRSKU_17').value*1) ;
    		var SqFootage = (Form1.BizSqFt.value/1000);
		    if (FormFees.SFDiscLevels && FormFees.SFDiscLevels.value*1 > 0) {
    			for (levelloop = 1;levelloop <= FormFees.SFDiscLevels.value*1; levelloop ++) {
					if((SqFootage*1) >= (document.getElementById('SQFT_DISC'+levelloop).value*1) ) {
					 	SqFtFactor = document.getElementById('SQFT_FACTOR'+levelloop).value /100;
					 	SqFtFee =(document.getElementById('PRSKU_'+Form1.TypeOfBusiness.value).value*1) * (SqFtFactor*1);
					 	SqFtFee = parseInt((SqFtFee*1)+(0.54*1));
					}
	    		}
    		}
    		
    		
//			BizTotal = ((document.getElementById('PRSKU_'+Form1.TypeOfBusiness.value).value*1) * Form1.BizSqFt.value);
			BizCount =	(Form1.BizLocations.value    *1)  ;
			BizTotal = ((document.getElementById('PRSKU_'+Form1.TypeOfBusiness.value).value*1) * (SqFtFactor*1) * (SqFootage*1));
			BizTotal = (SqFtFee * (SqFootage*1));
			BizTotal= parseInt((BizTotal*1)+0.50);
//			BizTotal = (BizTotal*1) + ((BizCount*1)*(BizLocPrice*1)) ;
		}
	}

   if (Form1.Office_Biz){ 
	BizCount =	(Form1.Office_Biz.value    *1) + 
			(Form1.Retail_Biz.value    *1) +
			(Form1.Resturant_Biz.value *1) +
			(Form1.Market_Biz.value    *1) +
			(Form1.Medical_Biz.value   *1) ;

	BizTotal =	((Form1.Office_Biz.value    *1)* FormFees.Office.value) + 
			((Form1.Retail_Biz.value    *1)* FormFees.Retail.value) +
			((Form1.Resturant_Biz.value *1)* FormFees.Resturant.value) +
			((Form1.Market_Biz.value    *1)* FormFees.Market.value) +
			((Form1.Medical_Biz.value   *1)* FormFees.Medical.value) ;
    }
 }   
	obj=document.getElementById('BizCount');
	obj.innerHTML = BizCount;
	obj=document.getElementById('BizTotal');
	obj.innerHTML =sprintf("%.2f", BizTotal);

	CreditCount = (HouseCount*1)+(CarCount*1)+(BizCount*1);
	CreditTotal = ((HouseTotal*1)+(BizTotal*1))+(CarTotal*1);
	obj=document.getElementById('GrandTotal');
	obj.innerHTML = sprintf("%.2f", CreditTotal) ;
	obj.CC=CreditCount;	
//	document.getElementById('EmpCount').innerHTML = Form1.Employees.value
        getData('/Pricing/Split_Pay.dat','placeHolder');

// alert(Fees.Small_House.value);	
// GetFee("Small_House",33);
}

function loadMultiPay(){
// CalcTotal(document.getElementById('GetInfo').Office_Biz);
// getData('/Pricing/Split_Pay.dat','placeHolder');
//alert(document.GetElementById('placeHolder').innerHTML);
// var mpData = document.GetElementById('placeHolder').innerHTML.split("\",\"");
// mpData[0] = mpData[0].substring(1, mpData[0].length); 
 //document.GetElementById('largeAmount').innerHTML =mpData[0].substring(1);
// document.GetElementById('MultiPayCount').innerHTML =mpData[1];
}

function GetFee(FeeId, AdjFee){
//	alert(FeeId + '- '+ Fees.Small_House.value);
//	var obj =document.getElementById(Fees);
//	alert(obj.FeeID.value);
//	obj.value =AdjFee;
//	alert(obj.value);
//	alert(Form1.(document.getElementByName(FeeId)).value);
}

function checkField(divID, fieldID){
  var badcolor = "red";
  document.getElementById(divID).color = (fieldID.value == '') ? badcolor : "";
 if(fieldID.value == '') { fieldID.focus()};
 return (fieldID.value != '');
}

// returns true if the string is a US phone number formatted as...
// (000)000-0000, (000) 000-0000, 000-000-0000, 000.000.0000, 000 000 0000, 0000000000
function isPhoneNumber(str){

//strip out acceptable non-numeric characters
var stripped = str.replace(/[\(\)\.\-\ ]/g, '');
//check for all numbers
var re = /[\D]/g 
if (re.test(stripped)) return false;

//check for phone number contains illegal characters.
if (isNaN(parseInt(stripped))) { return false; }
if (!(stripped.length == 10))  { return false; }
//	error = "The phone number is the wrong length.  Make sure you included an area code.\n";
if (!(str.length == 12))  { return false; }
re = /^\(?[2-9]\d{2}[\)\.-]?\s?\d{3}[\s\.-]?\d{4}$/ 
return re.test(str);
}
// returns true if the string is a valid email
function isEmail(str){
//  if( str == ''){ return false;}
//  var emailFilter=/^.+@.+\..{2,3,4,6}$/
//  if (!(emailFilter.test(str))) {
//  	 return false; }
//  var illegalChars= /[\(\)\<\>\,\;\:\\\/\"\[\]]/
//  if (str.match(illegalChars))  {
// return false; }
//   error = "The email address contains illegal characters.\n";

//  var re = /^[^\s()<>@,;:\/]+@\w[\w\.-]+\.[a-z]{2,}$/i 
//  return re.test(str);
}

function checkEmail (){
 var atSign = '@';
 var emailIs = formId.EMAIL.value;
 var atIsAt = emailIs.indexOf(atSign);
 var domainIs =emailIs.substring(atIsAt,emailIs.length);
 var dotIsAt = domainIs.indexOf('.');
 if (atIsAt < 1|| dotIsAt <2 || emailIs.substring(0,1) == '.'){alert('Invalid Email');return false;}
}


function sprintf() {

    function pad(str, len, chr, leftJustify) {
	var padding = (str.length >= len) ? '' : Array(1 + len - str.length >>> 0).join(chr);
	return leftJustify ? str + padding : padding + str;
    }

    function justify(value, prefix, leftJustify, minWidth, zeroPad) {
	var diff = minWidth - value.length;
	if (diff > 0) {
	    if (leftJustify || !zeroPad) {
		value = pad(value, minWidth, ' ', leftJustify);
	    } else {
		value = value.slice(0, prefix.length) + pad('', diff, '0', true) + value.slice(prefix.length);
	    }
	}
	return value;
    }

    function formatBaseX(value, base, prefix, leftJustify, minWidth, precision, zeroPad) {
	// Note: casts negative numbers to positive ones
	var number = value >>> 0;
	prefix = prefix && number && {'2': '0b', '8': '0', '16': '0x'}[base] || '';
	value = prefix + pad(number.toString(base), precision || 0, '0', false);
	return justify(value, prefix, leftJustify, minWidth, zeroPad);
    }

    function formatString(value, leftJustify, minWidth, precision, zeroPad) {
	if (precision != null) {
	    value = value.slice(0, precision);
	}
	return justify(value, '', leftJustify, minWidth, zeroPad);
    }

    var a = arguments, i = 0, format = a[i++];
    return format.replace(sprintf.regex, function(substring, valueIndex, flags, minWidth, _, precision, type) {
	    if (substring == '%%') return '%';

	    // parse flags
	    var leftJustify = false, positivePrefix = '', zeroPad = false, prefixBaseX = false;
	    for (var j = 0; flags && j < flags.length; j++) switch (flags.charAt(j)) {
		case ' ': positivePrefix = ' '; break;
		case '+': positivePrefix = '+'; break;
		case '-': leftJustify = true; break;
		case '0': zeroPad = true; break;
		case '#': prefixBaseX = true; break;
	    }

	    // parameters may be null, undefined, empty-string or real valued
	    // we want to ignore null, undefined and empty-string values

	    if (!minWidth) {
		minWidth = 0;
	    } else if (minWidth == '*') {
		minWidth = +a[i++];
	    } else if (minWidth.charAt(0) == '*') {
		minWidth = +a[minWidth.slice(1, -1)];
	    } else {
		minWidth = +minWidth;
	    }

	    // Note: undocumented perl feature:
	    if (minWidth < 0) {
		minWidth = -minWidth;
		leftJustify = true;
	    }

	    if (!isFinite(minWidth)) {
		throw new Error('sprintf: (minimum-)width must be finite');
	    }

	    if (!precision) {
		precision = 'fFeE'.indexOf(type) > -1 ? 6 : (type == 'd') ? 0 : void(0);
	    } else if (precision == '*') {
		precision = +a[i++];
	    } else if (precision.charAt(0) == '*') {
		precision = +a[precision.slice(1, -1)];
	    } else {
		precision = +precision;
	    }

	    // grab value using valueIndex if required?
	    var value = valueIndex ? a[valueIndex.slice(0, -1)] : a[i++];

	    switch (type) {
		case 's': return formatString(String(value), leftJustify, minWidth, precision, zeroPad);
		case 'c': return formatString(String.fromCharCode(+value), leftJustify, minWidth, precision, zeroPad);
		case 'b': return formatBaseX(value, 2, prefixBaseX, leftJustify, minWidth, precision, zeroPad);
		case 'o': return formatBaseX(value, 8, prefixBaseX, leftJustify, minWidth, precision, zeroPad);
		case 'x': return formatBaseX(value, 16, prefixBaseX, leftJustify, minWidth, precision, zeroPad);
		case 'X': return formatBaseX(value, 16, prefixBaseX, leftJustify, minWidth, precision, zeroPad).toUpperCase();
		case 'u': return formatBaseX(value, 10, prefixBaseX, leftJustify, minWidth, precision, zeroPad);
		case 'i':
		case 'd': {
			      var number = parseInt(+value);
			      var prefix = number < 0 ? '-' : positivePrefix;
			      value = prefix + pad(String(Math.abs(number)), precision, '0', false);
			      return justify(value, prefix, leftJustify, minWidth, zeroPad);
			  }
		case 'e':
		case 'E':
		case 'f':
		case 'F':
		case 'g':
		case 'G':
		          {
			      var number = +value;
			      var prefix = number < 0 ? '-' : positivePrefix;
			      var method = ['toExponential', 'toFixed', 'toPrecision']['efg'.indexOf(type.toLowerCase())];
			      var textTransform = ['toString', 'toUpperCase']['eEfFgG'.indexOf(type) % 2];
			      value = prefix + Math.abs(number)[method](precision);
			      return justify(value, prefix, leftJustify, minWidth, zeroPad)[textTransform]();
			  }
		default: return substring;
	    }
		    });
}
sprintf.regex = /%%|%(\d+\$)?([-+#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuidfegEG])/g;

/**
 * Trival printf implementation, probably only useful during page-load.
 * Note: you may as well use "document.write(sprintf(....))" directly
 */
function printf() {
    // delegate the work to sprintf in an IE5 friendly manner:
    var i = 0, a = arguments, args = Array(arguments.length);
    while (i < args.length) args[i] = 'a[' + (i++) + ']';
    document.write(eval('sprintf(' + args + ')'));
}

/**
*
*  MD5 (Message-Digest Algorithm)
*  http://www.webtoolkit.info/
*
**/
var MD5 = function (string) {
 
	function RotateLeft(lValue, iShiftBits) {
		return (lValue<<iShiftBits) | (lValue>>>(32-iShiftBits));
	}
 
	function AddUnsigned(lX,lY) {
		var lX4,lY4,lX8,lY8,lResult;
		lX8 = (lX & 0x80000000);
		lY8 = (lY & 0x80000000);
		lX4 = (lX & 0x40000000);
		lY4 = (lY & 0x40000000);
		lResult = (lX & 0x3FFFFFFF)+(lY & 0x3FFFFFFF);
		if (lX4 & lY4) {
			return (lResult ^ 0x80000000 ^ lX8 ^ lY8);
		}
		if (lX4 | lY4) {
			if (lResult & 0x40000000) {
				return (lResult ^ 0xC0000000 ^ lX8 ^ lY8);
			} else {
				return (lResult ^ 0x40000000 ^ lX8 ^ lY8);
			}
		} else {
			return (lResult ^ lX8 ^ lY8);
		}
 	}
 
 	function F(x,y,z) { return (x & y) | ((~x) & z); }
 	function G(x,y,z) { return (x & z) | (y & (~z)); }
 	function H(x,y,z) { return (x ^ y ^ z); }
	function I(x,y,z) { return (y ^ (x | (~z))); }
 
	function FF(a,b,c,d,x,s,ac) {
		a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac));
		return AddUnsigned(RotateLeft(a, s), b);
	};
 
	function GG(a,b,c,d,x,s,ac) {
		a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac));
		return AddUnsigned(RotateLeft(a, s), b);
	};
 
	function HH(a,b,c,d,x,s,ac) {
		a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac));
		return AddUnsigned(RotateLeft(a, s), b);
	};
 
	function II(a,b,c,d,x,s,ac) {
		a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac));
		return AddUnsigned(RotateLeft(a, s), b);
	};
 
	function ConvertToWordArray(string) {
		var lWordCount;
		var lMessageLength = string.length;
		var lNumberOfWords_temp1=lMessageLength + 8;
		var lNumberOfWords_temp2=(lNumberOfWords_temp1-(lNumberOfWords_temp1 % 64))/64;
		var lNumberOfWords = (lNumberOfWords_temp2+1)*16;
		var lWordArray=Array(lNumberOfWords-1);
		var lBytePosition = 0;
		var lByteCount = 0;
		while ( lByteCount < lMessageLength ) {
			lWordCount = (lByteCount-(lByteCount % 4))/4;
			lBytePosition = (lByteCount % 4)*8;
			lWordArray[lWordCount] = (lWordArray[lWordCount] | (string.charCodeAt(lByteCount)<<lBytePosition));
			lByteCount++;
		}
		lWordCount = (lByteCount-(lByteCount % 4))/4;
		lBytePosition = (lByteCount % 4)*8;
		lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80<<lBytePosition);
		lWordArray[lNumberOfWords-2] = lMessageLength<<3;
		lWordArray[lNumberOfWords-1] = lMessageLength>>>29;
		return lWordArray;
	};
 
	function WordToHex(lValue) {
		var WordToHexValue="",WordToHexValue_temp="",lByte,lCount;
		for (lCount = 0;lCount<=3;lCount++) {
			lByte = (lValue>>>(lCount*8)) & 255;
			WordToHexValue_temp = "0" + lByte.toString(16);
			WordToHexValue = WordToHexValue + WordToHexValue_temp.substr(WordToHexValue_temp.length-2,2);
		}
		return WordToHexValue;
	};
 
	function Utf8Encode(string) {
		string = string.replace(/\r\n/g,"\n");
		var utftext = "";
 
		for (var n = 0; n < string.length; n++) {
 
			var c = string.charCodeAt(n);
 
			if (c < 128) {
				utftext += String.fromCharCode(c);
			}
			else if((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			}
			else {
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}
 
		}
 
		return utftext;
	};
 
	var x=Array();
	var k,AA,BB,CC,DD,a,b,c,d;
	var S11=7, S12=12, S13=17, S14=22;
	var S21=5, S22=9 , S23=14, S24=20;
	var S31=4, S32=11, S33=16, S34=23;
	var S41=6, S42=10, S43=15, S44=21;
 
	string = Utf8Encode(string);
 
	x = ConvertToWordArray(string);
 
	a = 0x67452301; b = 0xEFCDAB89; c = 0x98BADCFE; d = 0x10325476;
 
	for (k=0;k<x.length;k+=16) {
		AA=a; BB=b; CC=c; DD=d;
		a=FF(a,b,c,d,x[k+0], S11,0xD76AA478);
		d=FF(d,a,b,c,x[k+1], S12,0xE8C7B756);
		c=FF(c,d,a,b,x[k+2], S13,0x242070DB);
		b=FF(b,c,d,a,x[k+3], S14,0xC1BDCEEE);
		a=FF(a,b,c,d,x[k+4], S11,0xF57C0FAF);
		d=FF(d,a,b,c,x[k+5], S12,0x4787C62A);
		c=FF(c,d,a,b,x[k+6], S13,0xA8304613);
		b=FF(b,c,d,a,x[k+7], S14,0xFD469501);
		a=FF(a,b,c,d,x[k+8], S11,0x698098D8);
		d=FF(d,a,b,c,x[k+9], S12,0x8B44F7AF);
		c=FF(c,d,a,b,x[k+10],S13,0xFFFF5BB1);
		b=FF(b,c,d,a,x[k+11],S14,0x895CD7BE);
		a=FF(a,b,c,d,x[k+12],S11,0x6B901122);
		d=FF(d,a,b,c,x[k+13],S12,0xFD987193);
		c=FF(c,d,a,b,x[k+14],S13,0xA679438E);
		b=FF(b,c,d,a,x[k+15],S14,0x49B40821);
		a=GG(a,b,c,d,x[k+1], S21,0xF61E2562);
		d=GG(d,a,b,c,x[k+6], S22,0xC040B340);
		c=GG(c,d,a,b,x[k+11],S23,0x265E5A51);
		b=GG(b,c,d,a,x[k+0], S24,0xE9B6C7AA);
		a=GG(a,b,c,d,x[k+5], S21,0xD62F105D);
		d=GG(d,a,b,c,x[k+10],S22,0x2441453);
		c=GG(c,d,a,b,x[k+15],S23,0xD8A1E681);
		b=GG(b,c,d,a,x[k+4], S24,0xE7D3FBC8);
		a=GG(a,b,c,d,x[k+9], S21,0x21E1CDE6);
		d=GG(d,a,b,c,x[k+14],S22,0xC33707D6);
		c=GG(c,d,a,b,x[k+3], S23,0xF4D50D87);
		b=GG(b,c,d,a,x[k+8], S24,0x455A14ED);
		a=GG(a,b,c,d,x[k+13],S21,0xA9E3E905);
		d=GG(d,a,b,c,x[k+2], S22,0xFCEFA3F8);
		c=GG(c,d,a,b,x[k+7], S23,0x676F02D9);
		b=GG(b,c,d,a,x[k+12],S24,0x8D2A4C8A);
		a=HH(a,b,c,d,x[k+5], S31,0xFFFA3942);
		d=HH(d,a,b,c,x[k+8], S32,0x8771F681);
		c=HH(c,d,a,b,x[k+11],S33,0x6D9D6122);
		b=HH(b,c,d,a,x[k+14],S34,0xFDE5380C);
		a=HH(a,b,c,d,x[k+1], S31,0xA4BEEA44);
		d=HH(d,a,b,c,x[k+4], S32,0x4BDECFA9);
		c=HH(c,d,a,b,x[k+7], S33,0xF6BB4B60);
		b=HH(b,c,d,a,x[k+10],S34,0xBEBFBC70);
		a=HH(a,b,c,d,x[k+13],S31,0x289B7EC6);
		d=HH(d,a,b,c,x[k+0], S32,0xEAA127FA);
		c=HH(c,d,a,b,x[k+3], S33,0xD4EF3085);
		b=HH(b,c,d,a,x[k+6], S34,0x4881D05);
		a=HH(a,b,c,d,x[k+9], S31,0xD9D4D039);
		d=HH(d,a,b,c,x[k+12],S32,0xE6DB99E5);
		c=HH(c,d,a,b,x[k+15],S33,0x1FA27CF8);
		b=HH(b,c,d,a,x[k+2], S34,0xC4AC5665);
		a=II(a,b,c,d,x[k+0], S41,0xF4292244);
		d=II(d,a,b,c,x[k+7], S42,0x432AFF97);
		c=II(c,d,a,b,x[k+14],S43,0xAB9423A7);
		b=II(b,c,d,a,x[k+5], S44,0xFC93A039);
		a=II(a,b,c,d,x[k+12],S41,0x655B59C3);
		d=II(d,a,b,c,x[k+3], S42,0x8F0CCC92);
		c=II(c,d,a,b,x[k+10],S43,0xFFEFF47D);
		b=II(b,c,d,a,x[k+1], S44,0x85845DD1);
		a=II(a,b,c,d,x[k+8], S41,0x6FA87E4F);
		d=II(d,a,b,c,x[k+15],S42,0xFE2CE6E0);
		c=II(c,d,a,b,x[k+6], S43,0xA3014314);
		b=II(b,c,d,a,x[k+13],S44,0x4E0811A1);
		a=II(a,b,c,d,x[k+4], S41,0xF7537E82);
		d=II(d,a,b,c,x[k+11],S42,0xBD3AF235);
		c=II(c,d,a,b,x[k+2], S43,0x2AD7D2BB);
		b=II(b,c,d,a,x[k+9], S44,0xEB86D391);
		a=AddUnsigned(a,AA);
		b=AddUnsigned(b,BB);
		c=AddUnsigned(c,CC);
		d=AddUnsigned(d,DD);
	}
 
	var temp = WordToHex(a)+WordToHex(b)+WordToHex(c)+WordToHex(d);
 
	return temp.toLowerCase();
}