//**************browser/platform detect*******************
bName = navigator.appName;
bVer = parseInt(navigator.appVersion);
bPlatform = navigator.platform;
bAgentname = navigator.userAgent.toLowerCase();
stylesheet = "";

// Determine which platform is being used.
if (bPlatform.indexOf("Win") != -1) bplat = "Win";
else if (bPlatform.indexOf("Mac") != -1) bplat = "Mac";
else bplat = "othersPlatform";
 
// Determine which browser is being used.
if (bName == "Netscape" && bVer < 5) {
 //Is this opera?
 if (bAgentname.indexOf("opera") != -1) {
 	br = "o4";
 }
 else br = "n4";
}
else if (bName == "Netscape") {
	br = "n6";
}
else if (bName == "Mozilla") {
	br = "n6";
}
	
else if (bName == "Microsoft Internet Explorer" && bVer >= 4) br = "e4";
//else if (bName == "Opera") br = "op";
else br = "others";
 
//**************end browser/platform detect*******************
 


//alert(br+" "+bplat); AN ALERT IN CASE WE NEED TO SNIFF

//**************call style sheet*******************
//*****************change name and path to .css as needed*****************
// Netscape on Mac

if (br == "n4" && bplat =="Mac") {
//alert("You are using Netscape 4 on Mac");
document.write("<link rel='STYLESHEET' type='text/css' href='stylemac.css'>");
}

// Netscape on Mac
else if (br == "n6" && bplat =="Mac") {
//alert("You are using Netscape 6 on Mac");
document.write("<link rel='STYLESHEET' type='text/css' href='stylemac.css'>");
}

// Netscape on Mac
else if (br == "n6" && bplat =="Win") {
//alert("You are using Netscape 6 on Mac");
document.write("<link rel='STYLESHEET' type='text/css' href='stylemac.css'>");
}
 
// IE on Mac
else if (br == "e4" && bplat =="Mac") {
//alert("You are using IE 4 on Mac");
document.write("<link rel='STYLESHEET' type='text/css' href='style.css'>");
}
 
// Netscape on PC
else if (br == "n4" && bplat =="Win") {
//alert("You are using Netscape 4 on PC");
document.write("<link rel='STYLESHEET' type='text/css' href='stylenet47.css'>");
}
 
// IE on PC
else if (br == "e4" && bplat =="Win") {
//alert("You are using IE 4 on PC");
document.write("<link rel='STYLESHEET' type='text/css' href='style.css'>");
}
 
//Opera
else if (br == "op") {
document.write("<link rel='STYLESHEET' type='text/css' href='style.css'>");
}
 
// Otherwise, display indexie.htm by default.
else {
document.write("<link rel='STYLESHEET' type='text/css' href='style.css'>");
}
 //**************end call style sheet*******************

 
 
 
 

 //**************swap image*******************
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

 //**************image restore*******************
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

 //**************preload images*******************
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}




 //**************layer swap*******************
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}
 //**************end layer swap*******************

 
 
 
//reloads the window if Netscape 4 resized
function MM_reloadPage(init) {  
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);




 
if (document.images) {
}
function di(id,name){
  if (document.images) {document.images[id].src=eval(name+".src"); }
}

// function that displays status bar message

function dm(msgStr) {
  document.returnValue = false;
  if (document.images) { 
     window.status = msgStr;
     document.returnValue = true;
  }
}
var showMsg = navigator.userAgent != "Mozilla/4.0 (compatible; MSIE 4.0; Mac_PowerPC)";
function dmim(msgStr) {
  document.returnValue = false;
  if (showMsg) { 
    window.status = msgStr;
    document.returnValue = true;
  }
}


// td onclicks to a url
function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}


function doSearchNav(fm) {
	fm.terms.value = fm.terms.value.replace(/^ */g, '').replace(/ *$/g, '');
	if (fm.terms.value != '')
	fm.submit();
}

// tricky script for redirects

function gotoit(loc){ 
self.location= loc;
} 

// set some vars
window.defaultStatus = "";
var linenos = new Array();

// form handling functions
function clearMissing(fm) {
	fm.missing.value = "";
}
function trimFormField(fm, fieldname) {
	formfield = eval("fm." + fieldname);
	formfield.value = formfield.value.replace(/^ */g, '').replace(/ *$/g, '');
}
function requiredFormField(fm, fieldname, fielddesc) {
	formfield = eval("fm." + fieldname);
	if (formfield.value == "")
		fm.missing.value = fm.missing.value + "," + fielddesc + " is a required field";
}
function phoneFields(fm, ac_name, p_name, ac_disp, p_disp) {
	ac_field = eval("fm." + ac_name);
	p_field = eval("fm." + p_name);
	if (ac_field.value != "") {
		if (p_field.value == "")
			fm.missing.value = fm.missing.value + "," + p_disp + " is a required field";					
		found = ac_field.value.search(/\d{3}/);
		if (found != 0)
			fm.missing.value = fm.missing.value + "," + ac_disp + " must be three digits";
	}
	if (p_field.value != "") {
		if (ac_field.value == "")
			fm.missing.value = fm.missing.value + "," + ac_disp + " is a required field";
		temp = p_field.value + " ";
		if (temp.search(/\d{7}\s{1}/) == 0)
			p_field.value = p_field.value.substring(0, 3) + "-" + p_field.value.substring(3);
		else {
			found = temp.search(/\d{3}-\d{4}\s{1}/);
			if (found != 0)
				fm.missing.value = fm.missing.value + "," + p_disp + " must be in the form 555-1234";
		}
	}
}
function phoneField(fm, fieldname, fielddesc, reqd) {
	formfield = eval("fm." + fieldname);	
	if (formfield.value == "" && reqd)
		fm.missing.value = fm.missing.value + "," + fielddesc + " is a required field";
	else if (formfield.value != "") {
		formfield.value = formfield.value.replace(/[\s\(]/g, "").replace(/[\)]/g, "-").replace(/[\.]/g, "-");
		temp = formfield.value + " ";
		if (temp.search(/\d{10}\s{1}/) == 0)
			formfield.value = formfield.value.substring(0, 3) + "-" + formfield.value.substring(3, 6) + "-" + formfield.value.substring(6);
		else {
			found = temp.search(/\d{3}\-\d{3}\-\d{4}\s{1}/);
			if (found != 0)
				fm.missing.value = fm.missing.value + "," + fielddesc + " must be in the form 123-456-7890";
		}
	}
}
function emailField(fm, fieldname, fielddesc, reqd) {
	formfield = eval("fm." + fieldname);	
	if (formfield.value == "" && reqd)
		fm.missing.value = fm.missing.value + "," + fielddesc + " is a required field";
	else if (formfield.value != "") {
		temp = formfield.value + " ";
		found = temp.search(/[\w\.-]+@([\w-]+\.){1,3}[a-zA-Z]{2,}\s{1}/);
		if (found != 0)
			fm.missing.value = fm.missing.value + "," + fielddesc + " must be in the form abc@def.com";
	}
}
function regexpField(fm, regexp, fieldname, fielddesc, msg, reqd) {
	formfield = eval("fm." + fieldname);
	if (formfield.value != "") {
		temp = formfield.value + " ";
		found = temp.search(regexp);
		if (found != 0)
			fm.missing.value = fm.missing.value + "," + fielddesc + msg;
	} else if (reqd) {
		fm.missing.value = fm.missing.value + "," + fielddesc + " is a required field";
	}
}
function submitForm(fm, missingurl) {
	if (fm.missing.value != "") {
		fm.missing.value = fm.missing.value.substring(1);
		fm.action = missingurl;
	}
	fm.submit();
}
function signincheck(fm, missingurl) {
	clearMissing(fm);
	trimFormField(fm, "username");
	reqdfields = new Array("username","password");
	reqddescs = new Array("E-mail","Password");
	for (i = 0; i < reqdfields.length; i++)
		requiredFormField(fm, reqdfields[i], reqddescs[i]);
	submitForm(fm, missingurl);
}
function profilecheck(fm, missingurl) {
	clearMissing(fm);
	trimfields = new Array("emailusername","firstname","lastname","address1","address2","city","zip","phonecode","phone","phoneext","intphone","faxcode","fax","faxext","nramembernumber");
	for (i = 0; i < trimfields.length; i++)
		trimFormField(fm, trimfields[i]);
	emailField(fm, "emailusername", "E-mail Address", true);	
	reqdfields = new Array("firstname","lastname","address1","city");
	reqddescs = new Array("First Name","Last Name","Address Line 1","City");
	for (i = 0; i < reqdfields.length; i++)
		requiredFormField(fm, reqdfields[i], reqddescs[i]);
	regexpField(fm, /\d{5}(-\d{4}){0,1}\s{1}/, "zip", "Zip Code", " must be in the form 12345 or 12345-6789", true);
	if ((fm.phonecode.value == "" || fm.phone.value == "") && fm.intphone.value == "")
		fm.missing.value = fm.missing.value + ",Phone or Int'l Phone";
	phoneFields(fm, "phonecode", "phone", "Phone Area Code", "Phone Number");
	regexpField(fm, /[\d-]+\s{1}/, "intphone", "Int'l Phone", " must be digits and dashes only", false);
	phoneFields(fm, "faxcode", "fax", "Fax Area Code", "Fax Number");
	if (fm.is_member.checked)
		requiredFormField(fm, "nramembernumber", "NRA Member #");	
	submitForm(fm, missingurl);
}
function paymentcheck(fm, missingurl) {
	clearMissing(fm);
	trimfields = new Array("ccname","ccnumber");
	for (i = 0; i < trimfields.length; i++)
		trimFormField(fm, trimfields[i]);
	requiredFormField(fm, "ccname", "Name on Card");
	regexpField(fm, /\d{15,16}\s{1}/, "ccnumber", "Card Number", " must be 15 or 16 digits", true);	
	submitForm(fm, missingurl);
}
function changepasscheck(fm, missingurl) {
	clearMissing(fm);		
	reqdfields = new Array("oldpass","newpass");
	reqddescs = new Array("Old Password","New Password");
	for (i = 0; i < reqdfields.length; i++)
		requiredFormField(fm, reqdfields[i], reqddescs[i]);
	if (fm.newpass.value.length > 0 && fm.newpass.value.length < 8)
		fm.missing.value = fm.missing.value + ",New Password must be at least eight characters in length.";
	requiredFormField(fm, "verify", "Confirm Password");
	if (fm.newpass.value != fm.verify.value)
		fm.missing.value = fm.missing.value + ",The New Password and Confirm Password fields must match.";
	submitForm(fm, missingurl);
}
function resetpasscheck(fm, missingurl) {
	clearMissing(fm);
	if (confirm("Are you sure you wish to reset this subscriber's password?")) {
		fm.formtype.value = "resetpassword";
		submitForm(fm, missingurl);
	}
}
function deleteusercheck(fm, missingurl) {
	clearMissing(fm);
	if (confirm("Are you sure you wish to delete this subscriber?")) {
		fm.formtype.value = "deleteuser";
		submitForm(fm, missingurl);
	}
}
function adminnotecheck(fm, missingurl) {
	clearMissing(fm);
	trimFormField(fm, "notes");
	if (fm.notes.value != "") {
		fm.formtype.value = "adminnote";
		submitForm(fm, missingurl);
	}
}
function addissuecheck(fm, missingurl) {
	clearMissing(fm);		
	reqdfields = new Array("request_topic","request_text");
	reqddescs = new Array("Issue Topic","Description");
	for (i = 0; i < reqdfields.length; i++)
		trimFormField(fm, reqdfields[i]);
	for (i = 0; i < reqdfields.length; i++)
		requiredFormField(fm, reqdfields[i], reqddescs[i]);
	submitForm(fm, missingurl);
}
function updateissuecheck(fm, missingurl) {
	clearMissing(fm);
	trimFormField(fm, "request_text");
	requiredFormField(fm, "request_text", "Description");
	submitForm(fm, missingurl);
}
function respondissuecheck(fm, missingurl) {
	clearMissing(fm);
	trimFormField(fm, "response_text");
	requiredFormField(fm, "response_text", "Response");
	submitForm(fm, missingurl);
}
function closeissuecheck(fm, missingurl) {
	clearMissing(fm);
	if (confirm("Are you sure you wish to close this support request?")) {
		fm.formtype.value = "closeissue";
		submitForm(fm, missingurl);
	}
}
function checkcart(fm, missingurl, checkout) {
	clearMissing(fm);
	for (i = 0; i < linenos.length; i++) {
		trimFormField(fm, "qty_" + linenos[i]);
		regexpField(fm, /\d{1,}\s{1}/, "qty_" + linenos[i], "Line " + (i+1) + " Quantity", " must be a valid number", false);
	}
	if (checkout)
		fm.checkout.value = "1";
	else fm.checkout.value = "0";
	submitForm(fm, missingurl);		
}
function checkoutbillingcheck(fm, missingurl) {
	clearMissing(fm);
	trimfields = new Array("b_firstname","b_lastname","b_company","b_address1","b_address2","b_city","b_zip","b_phonecode","b_phone","b_phoneext","b_intphone","b_faxcode","b_fax","b_faxext","b_email");
	for (i = 0; i < trimfields.length; i++)
		trimFormField(fm, trimfields[i]);	
	reqdfields = new Array("b_firstname","b_lastname","b_address1","b_city");
	reqddescs = new Array("First Name","Last Name","Address Line 1","City");
	for (i = 0; i < reqdfields.length; i++)
		requiredFormField(fm, reqdfields[i], reqddescs[i]);
	regexpField(fm, /\d{5}(-\d{4}){0,1}\s{1}/, "b_zip", "Zip Code", " must be in the form 12345 or 12345-6789", true);
	if ((fm.b_phonecode.value == "" || fm.b_phone.value == "") && fm.b_intphone.value == "")
		fm.missing.value = fm.missing.value + ",Phone or Int'l Phone";
	phoneFields(fm, "b_phonecode", "b_phone", "Phone Area Code", "Phone Number");
	regexpField(fm, /[\d-]+\s{1}/, "b_intphone", "Int'l Phone", " must be digits and dashes only", false);
	phoneFields(fm, "b_faxcode", "b_fax", "Fax Area Code", "Fax Number");
	emailField(fm, "b_email", "E-mail Address", true);
	regexpField(fm, /[a-zA-Z0-9]{8,9}\s{1}/, "nramembernumber", "NRA Member #", " is in an invalid form", false);	
	submitForm(fm, missingurl);
}
function checkoutshippingcheck(fm, missingurl) {
	clearMissing(fm);
	trimfields = new Array("s_shipto","s_address1","s_address2","s_city","s_zip","s_phonecode","s_phone","s_phoneext","s_intphone","s_faxcode","s_fax","s_faxext","s_email");
	for (i = 0; i < trimfields.length; i++)
		trimFormField(fm, trimfields[i]);	
	reqdfields = new Array("s_shipto","s_address1","s_city");
	reqddescs = new Array("Ship To","Address Line 1","City");
	for (i = 0; i < reqdfields.length; i++)
		requiredFormField(fm, reqdfields[i], reqddescs[i]);
	regexpField(fm, /\d{5}(-\d{4}){0,1}\s{1}/, "s_zip", "Zip Code", " must be in the form 12345 or 12345-6789", true);
	if ((fm.s_phonecode.value == "" || fm.s_phone.value == "") && fm.s_intphone.value == "")
		fm.missing.value = fm.missing.value + ",Phone or Int'l Phone";
	phoneFields(fm, "s_phonecode", "s_phone", "Phone Area Code", "Phone Number");
	regexpField(fm, /[\d-]+\s{1}/, "s_intphone", "Int'l Phone", " must be digits and dashes only", false);
	phoneFields(fm, "s_faxcode", "s_fax", "Fax Area Code", "Fax Number");
	emailField(fm, "s_email", "E-mail Address", false);	
	submitForm(fm, missingurl);
}
function contactcheck(fm, missingurl) {
	clearMissing(fm);
	trimfields = new Array("email","name","phonecode","phone","phoneext","faxcode","fax","faxext","subject","message_text");
	for (i = 0; i < trimfields.length; i++)
		trimFormField(fm, trimfields[i]);
	emailField(fm, "email", "E-mail Address", true);
	requiredFormField(fm, "name", "Name");	
	phoneFields(fm, "phonecode", "phone", "Phone Area Code", "Phone Number");
	phoneFields(fm, "faxcode", "fax", "Fax Area Code", "Fax Number");
	requiredFormField(fm, "subject", "Message Subject");
	requiredFormField(fm, "message_text", "Message Text");	
	submitForm(fm, missingurl);
}
function POScheck(fm, missingurl) {
	clearMissing(fm);
	trimfields = new Array("qty_s_red","qty_s_green","qty_s_tan","qty_s_blue","qty_m_red","qty_m_green","qty_m_tan","qty_m_blue","ccnumber","fname_b","lname_b","addr1_b","addr2_b","city_b","zip_b","phone_b","fax_b","email_b","shipto","addr1_s","addr2_s","city_s","zip_s","phone_s","fax_s","email_s");
	for (i = 0; i < trimfields.length; i++)
		trimFormField(fm, trimfields[i]);	
	reqdfields = new Array("qty_s_red","qty_s_green","qty_s_tan","qty_s_blue","qty_m_red","qty_m_green","qty_m_tan","qty_m_blue");
	reqddescs = new Array("Small Red","Small Green","Small Tan","Small Blue","Medium Red","Medium Green","Medium Tan","Medium Blue");
	oneproduct = false;
	for (i = 0; i < reqdfields.length; i++) {
		regexpField(fm, /\d{1,5}\s{1}/, reqdfields[i], reqddescs[i], " must be a value of 0 or greater", true);
		if (! oneproduct && ! isNaN(parseInt(eval("fm." + reqdfields[i]).value)) && parseInt(eval("fm." + reqdfields[i]).value) > 0)
			oneproduct = true;
	}
	if (! oneproduct)
		fm.missing.value += ",At least one product must be ordered";
	regexpField(fm, /\d{15,16}\s{1}/, "ccnumber", "Card Number", " must be 15 or 16 digits", true);
	reqdfields = new Array("fname_b","lname_b","addr1_b","city_b");
	reqddescs = new Array("Billing First Name","Billing Last Name","Billing Address 1","Billing City");
	for (i = 0; i < reqdfields.length; i++)
		requiredFormField(fm, reqdfields[i], reqddescs[i]);
	regexpField(fm, /\d{5}(-\d{4}){0,1}\s{1}/, "zip_b", "Billing Zip", " must be in the form 12345 or 12345-6789", true);
	phoneField(fm, "phone_b", "Billing Phone", true);
	phoneField(fm, "fax_b", "Billing Fax", false);
	emailField(fm, "email_b", "Billing E-mail", true);
	reqdfields = new Array("shipto","addr1_s","city_s");
	reqddescs = new Array("Ship To","Shipping Address 1","Shipping City");
	for (i = 0; i < reqdfields.length; i++)
		requiredFormField(fm, reqdfields[i], reqddescs[i]);
	
	var addrString = fm.addr1_s.value;
	var inThere = addrString.match(/box/gi);	
	if (inThere)
		fm.missing.value += ",Shipping address cannot be a Post Office Box at this time.";

	regexpField(fm, /\d{5}(-\d{4}){0,1}\s{1}/, "zip_s", "Shipping Zip", " must be in the form 12345 or 12345-6789", true);
	phoneField(fm, "phone_s", "Shipping Phone", true);
	phoneField(fm, "fax_s", "Shipping Fax", false);
	emailField(fm, "email_s", "Shipping E-mail", true);	
	submitForm(fm, missingurl);
}
function copyaddress(fm) {
	fm.shipto.value = fm.fname_b.value + " " + fm.lname_b.value;
	fm.addr1_s.value = fm.addr1_b.value;
	fm.addr2_s.value = fm.addr2_b.value;
	fm.city_s.value = fm.city_b.value;
	for (i = 0; i < fm.state_s.options.length; i++)
		if (fm.state_s.options[i].value == fm.state_b.value)
			fm.state_s.options[i].selected = true;
	fm.zip_s.value = fm.zip_b.value;
	for (i = 0; i < fm.country_s.options.length; i++)
		if (fm.country_s.options[i].value == fm.country_b.value)
			fm.country_s.options[i].selected = true;
	fm.phone_s.value = fm.phone_b.value;
	fm.fax_s.value = fm.fax_b.value;
	fm.email_s.value = fm.email_b.value;
}
