//begin _service.cfm functions
var dom0 = (document.getElementById) ? 1:0;
var includedFeatures;
var packageFeatures;
var choosenFeatures = 0;
var featureAmount = 0;
var featurePackageChecked = 0;
var productSelected = false;
var defaultCost = 4; //as of launch date all features $4
var defaultProductFeatureInclude = 2; //as of launch date all non unlimted features included 2 features
var stateArray = new Array( "AL","AK","AZ","AR","CA","CO","CT","DC","DE","FL","GA","HI","ID","IL","IN","IA","KS","KY","LA","ME","MD","MA","MI","MN","MS","MT","MO","NE","NV","NH","NJ","NM","NY","NC","ND","OH","OK","OR","PA","RI","SC","SD","TN","TX","UT","VT","VA","WA","WV","WI","WY");
function calcIncluded( i, cost, isChecked, notAllowedWith, otherName ){ //REMOVED: packageCost
//CHECK IF PRODUCT IS SELECTED
for( var j = 0; j <document.order.p_id.length; j++ ){
 if( document.order.p_id[j].checked ){
 productSelected = true;
 }
}
//ALERT IF PRODUCT NOT SELECTED
if( isNaN( includedFeatures ) && !productSelected && document.order.includedFeatures.value == 0){
 alert("Please Select Rate Plan");
 document.order.features[i].checked = false;
 return
}
//DO NOT ALLOW FEATURE TO BE CHOOSEN IF FEATURE PACKAGE IS SELECTED
/*else if( featurePackageChecked == 1 ){
 document.order.features[i].checked = false;
}*/

if( !isNaN( notAllowedWith ) && isChecked ){
 if( document.order.features[ parseFloat( notAllowedWith ) ].checked == true ){
 alert("This Feature May Not Be Choosen With " + otherName);
 document.order.features[i].checked = false;
 return
 }
}
//IF FEATURE IS SELECTED ADD TO FEATURE COUNT AND TOTAL COST
if( isChecked ){
 if( includedFeatures == undefined ){
 includedFeatures = parseFloat(document.order.includedFeatures.value) + parseFloat(3);
 }
 choosenFeatures = parseFloat(choosenFeatures) + parseFloat(1);
 if( parseFloat(choosenFeatures)> parseFloat(packageFeatures) ){
 featureAmount = parseFloat(featureAmount) + parseFloat(cost);
 }
 if( parseFloat(choosenFeatures)> parseFloat(includedFeatures) && featurePackageChecked == 0 ){
 alert("Your Current Feature Price is $" + featureAmount + ". The Feature Package may be more Economical");
 return
 }

 return
}

//IF FEATURE IS UNSELECTED SUBTRACT FROM FEATURE COUNT AND TOTAL COST
else if ( !isChecked ){
 choosenFeatures = parseFloat(choosenFeatures) - parseFloat(1);
 featureAmount = parseFloat(featureAmount) - parseFloat(cost);
}

return
}
function chkProduct(){
if( document.order.includedFeatures.value == 'all' ){
 showDiv('none','featuresDiv');
 return
}

}
function checkProductType( choosen, allowed, obj ){
if( allowed != choosen ){
 alert( "This Service is only allowed for " + allowed + " products" );
 obj.checked = false;
 return
}
return
}
function reSetChoosenFeatures( nb ){
choosenFeatures = nb;
packageFeatures = parseFloat( defaultProductFeatureInclude );
featureAmount = ( parseFloat( nb ) - parseFloat( defaultProductFeatureInclude ) ) * parseFloat( defaultCost );
return
}
function selectAll( ins, isChecked ){
for( var j = 0; j <document.order.p_id.length; j++ ){
 if( document.order.p_id[j].checked ){
 productSelected = true;
 }
}

if( isNaN( includedFeatures ) && !productSelected ){
 alert("Please Select Product");
 document.order.features[ins].checked = false;
 return
}

if( isChecked ){
 //choosenFeatures = 0;
 //featureAmount = 0;
 featurePackageChecked = 1;
 document.order.isFeaturePackage.value = 1;

 //UNCHECK ALL FEATURES
 /*for( var i=0; i <ins; i++){
 document.order.features[i].checked = false;
 }*/

 return
}
else{
 featurePackageChecked = 0;
 document.order.isFeaturePackage.value = 0;
 return
}

return
}
function setIncluded( num ){
var numSelected;
productSelected = true;
numSelected = 0;
if( num == ''){
 //UNCHECK FEATURE PACKAGE ( MUST BE LAST CHECKBOX )
 document.order.features[ parseFloat(document.order.features.length) - parseFloat(1) ].checked = false;

 //SET BIT INDICATING NO CHANGE FOR ANY FEATURE
 featurePackageChecked = 1;

 //UNSEELECT ALL FEATURES
 //for( var i=0; i <document.order.features.length; i++ ){
 // document.order.features[i].checked = false;
 //}

 //HIDE FEATURE PACKAGE CHECKBOX
 showDiv('none','featuresDiv');
 document.order.includedFeatures.value = 'all';
 return
}

else{
 //SET BIT INDICATING CHANGE FOR FEATURES
 featurePackageChecked = 0;

 //SHOW FEATURE PACKAGE DIV
 showDiv('block','featuresDiv');

 document.order.includedFeatures.value = num;
 includedFeatures = parseFloat(num) + parseFloat(3);
 packageFeatures = parseFloat(num);

 for( var i=0; i <document.order.features.length; i++ ){
 if( document.order.features[i].checked == true){
 numSelected = parseFloat( numSelected ) + parseFloat( 1 );
 }
 }
 if( numSelected> includedFeatures ){
 featureAmount = ( parseFloat(numSelected) - parseFloat(num) ) * parseFloat( defaultCost );
 alert("Your Current Feature Price is $" + featureAmount + ". The Feature Package may be more Economical");
 }

 return
}

return
}
function showDiv(func, theSubDiv){
//var theSubDiv='featuresDiv';
if (dom0) {
 document.getElementById(theSubDiv).style.display=func;
}
}
//end _service.cfm functions
function alertCert(obj){
alert("You Must Agree to all Condidtions");
}
function changeWinStat( msg ){
window.parent.status = msg;
return true
}
function checkAllowedService( obj, i, imsg, j, jmsg ){
if( obj.checked == true ){
 if( document.order.services[i].checked == true ){
 obj.checked = false;
 alert("This Service is not allowed with " + imsg);
 return
 }

 if( !isNaN(j) ){
 if( document.order.services[j].checked == true ){
 obj.checked = false;
 alert("This Service is not allowed with " + jmsg);
 return
 }
 }
}
}
function checkAvailbility( theForm ){
if( theForm.npa.value.length == 0 || theForm.nxx.value.length == 0){
 alert("Please Enter the First Six Digits of your Telephone Number");
 theForm.npa.focus();
 return
}

theForm.submit();

return
}

function chkEmail( lemail, nxt ){
re = /(\S+\@\S+\.\S+)/i;
if( !re.exec(lemail.value) ){
 alert("Email Must Be in [Username]@[Domain Name].XXX Format");
 lemail.focus();
 return
}
//nxt.focus();
return
}
function chkEqualValue(obj1, obj2, name){
if( obj1.value != obj2.value ){
 alert( name + " Values do not Match");
 //obj1.value = '';
 obj2.value = '';
 //obj2.focus();
 return
}

return
}
function chkLoaPhone( form ){
if( form.phone1.value.length != 3 ){
 alert("Please Enter Phone Number")
 form.phone1.focus();
 return false
}
if( form.phone2.value.length != 3 ){
 alert("Please Enter Phone Number")
 form.phone2.focus();
 return false
}
if( form.phone3.value.length != 4 ){
 alert("Please Enter Phone Number")
 form.phone3.focus();
 return false
}

return true
}
function chkLoaSig( form ){
if( form.signiture.value.length == 0 ){
 alert("Please Sign Authorization");
 form.signiture.focus();
 return false
}

return true
}
function chkPhoneValue(obj, nxt, maxLen){
if( isNaN(obj.value) ){
 alert("Please Enter Numeric Value");
 obj.value = "";
 return
}
else if( (obj.value.length == maxLen) && (nxt != '') ) {
 nxt.focus();
 return
}
}
function checkNumber( obj ){
var val, curChar;
val = obj.value;

for( var i=0; i<val.length; i++ ){
 curChar= val.substring(i, i+1);

 if( isNaN( curChar ) || curChar == ' ' ){
 alert("Please Enter Numeric Value");
 obj.value = val.substring( 0, i );
 obj.focus();
 return
 }
}
return
}
function checkNumericMoveNext( obj, len, nxt ){
var val, curChar;
val = obj.value;

for( var i=0; i<val.length; i++ ){
 curChar= val.substring(i, i+1);

 if( isNaN( curChar ) || curChar == ' ' ){
 alert("Please Enter Numeric Value");
 obj.value = val.substring( 0, i );
 obj.focus();
 return
 }
}

if( obj.value.length == len ){
 nxt.focus();
 return
}

return
}
function chooseProduct(qs){
document.location = 'productDetail.cfm?' + qs;
return
}
function completeOrder(theForm){
//theForm.action = 'loa.cfm';
theForm.action = 'pro_loa.cfm';
theForm.submit();
return
}
function editOrder(theForm){
theForm.action = 'results.cfm';
theForm.submit();
return
}
function infoRequestFormSub( theForm ){
if( infoRequestFormValidation( theForm ) ){
 theForm.submit()
 return
}
return
}
function infoRequestFormValidation( form ){
return (
 checkString( form.elements["ir_name"], "Name" ) &&
 checkString( form.elements["ir_email"], "Email" ) &&
 checkString( form.elements["ir_telephone"], "Phone" ) &&
 checkString( form.elements["ir_note"], "Note" )
 )
}
function isValidState( obj ){
for( i=0; i<stateArray.length; i++ ){
 if( obj.value.toLowerCase() == stateArray[i].toLowerCase() ){
 return true
 }
}

alert("Please enter Valid State");
obj.focus();

return false
}
function limitTextLength( obj, maxLen ){
var str;
if( obj.value.length> maxLen ){
 str = obj.value;
 obj.value = str.substring( 0, maxLen-1 );
 return
}
return
}
function loaFormChkAdditionalNumbers( obj ){
var lastChar, addNum;

carReg = new RegExp(/[\r\n]/g);

addNum = trim(obj.value);
lastChar = addNum.substring( addNum.length - 1, addNum.length )

if( carReg.test(lastChar) ){
 obj.value = obj.value.replace(carReg,"");
}

if( lastChar != "," && lastChar != "(" && lastChar != ")" && lastChar != "-" && isNaN(lastChar) ){
 alert("Please Enter Numeric Phone Number");
 obj.value = addNum.substring( 0, addNum.length - 1);
 return
}
return
}
function loaFormCheckCertify( form ){
if ( form.tollCertify[1].checked || form.longCertify[1].checked ){ //|| form.localCertify[1].checked ){
 alert("You Must Agree to all Condidtions");
 return false
}

return true
}
function loaFormValidation( form ){
return(
 checkString( form.elements["sb_fname"], "First Name" ) &&
 checkString( form.elements["sb_lname"], "Last Name" ) &&
 checkString( form.elements["sb_address"], "Address" ) &&
 checkString( form.elements["sb_city"], "City" ) &&
 checkString( form.elements["sb_state"], "State" ) &&
 checkString( form.elements["sb_postal"], "Postal" ) &&
 checkString( form.elements["sb_phone"], "Phone" ) &&
 checkString( form.elements["sb_email"], "Email" )
 )
}
function makeLoaDate( form ){
form.o_date.value = form.o_dateMonth.value + '/' + form.o_dateDay.value + '/' + form.o_dateYear.value
return
}
function promoDetail( qs ){
window.open('promo.cfm?' + qs,'promoDetail','top=50,left=175,height=600,width=750,location=0,scrollbars=1,resizable=1,menu=0,status=0');
return
}
function setPaymentType( obj, form ){
if( obj == 'Use Existing Method' && form.sb_bestWebAccount.value.length == 0){
 showDiv( 'none', 'creditCardDiv');
 alert("Please Enter Best Web Account Number");
 form.sb_bestWebAccount.focus();
 return
}
else if( obj == 'Credit Card' ){
 showDiv( 'block', 'creditCardDiv');
 return
}
showDiv( 'none', 'creditCardDiv');
return
}
function showFeatureDetail( qs ){
window.open('product_guide.cfm?' + qs,'productGuide','top=50,left=175,height=600,width=750,location=0,scrollbars=1,resizable=1,menu=0,status=0');
return
}
function signLoa( theForm ){
if( chkLoaSig( theForm ) && chkLoaPhone( theForm ) ){
 theForm.submit();
 return
}
return
}
function subInfoFormSub( theForm ){
if( subInfoValidateForm( theForm ) && subInfoValidatePaymentOption( theForm ) ){
 theForm.submit();
 return
}

return
}
function subInfoValidateForm( form ){
return(
 checkString( form.elements["sb_fname"], "First Name" ) &&
 checkString( form.elements["sb_lname"], "Last Name" ) &&
 checkString( form.elements["sb_address"], "Address" ) &&
 checkString( form.elements["sb_city"], "City" ) &&
 checkString( form.elements["sb_state"], "State" ) &&
 checkString( form.elements["sb_postal"], "Postal" ) &&
 checkString( form.elements["npa"], "Phone" ) &&
 checkString( form.elements["nxx"], "Phone" ) &&
 checkString( form.elements["phone"], "Phone" ) &&
 checkString( form.elements["sb_email"], "Email" ) &&
 checkString( form.elements["vEmail"], "Verify Email" )
 )
}
function subInfoValidatePaymentOption( form ){
var isChecked;
for( var i=0; i <form.sb_preferredPaymentMethod.length; i++ ){
 if( form.sb_preferredPaymentMethod[i].checked == true ){
 isChecked = true;
 }
}

if( !isChecked ){
 alert("Please Select Payment Method");
 return false
}

//Use Existing Method
if( form.sb_preferredPaymentMethod[0].checked == true ){
 form.sb_cCardType.value = '';
 form.sb_cCardNumber.value = '';
 form.cCardMonth.value = '';
 form.cCardYear.value = '';
 return( checkString(form.elements["sb_bestWebAccount"],"Best Web Account") );
}
//Check Remit
if( form.sb_preferredPaymentMethod[1].checked == true ){
 form.sb_cCardType.value = '';
 form.sb_cCardNumber.value = '';
 form.cCardMonth.value = '';
 form.cCardYear.value = '';
 return true
}
//Credit Card
if( form.sb_preferredPaymentMethod[2].checked == true ){
 return(
 checkString( form.elements["sb_cCardType"],"Credit Card Type" ) &&
 checkString( form.elements["sb_cCardNumber"],"Credit Card Number" ) &&
 checkString( form.elements["cCardMonth"],"Credit Card Expiration Date" ) &&
 checkString( form.elements["cCardYear"],"Credit Card Expiration Date" )
 )
}
}
function validateForm( arg ){
//ARGUMENTS PASSED IN AS FORM NAME, FORM OBJECTS TO BE VALIDATED
//FORM OBJECTS TO BE VALIDATED PASSED IN AS "OBJECTNAME|ALERT MESSAGE"
for ( var i = 1; i <arguments.length; i++ ){
 var cur;
 cur = arguments[i].split('|');

 if( eval( arguments[0] + "." + cur[0] + ".value.length") == 0 ){
 alert( cur[1] );
 eval( arguments[0] + "." + cur[0] + ".focus()");
 return
 }
}
eval( arguments[0] + ".submit()" );
return
}
