var gotIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var gotNS = (navigator.appName == 'Netscape') ? true : false;
var ns=document.layers;
var ie=document.all;
var ns6=document.getElementById&&!document.all;
var flag=0;

function showselect(id){


	SDDM_deactivate(id);

}

function checkEmailAddress() {

if (! (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,5})+$/.test(document.TheForm.email.value))){
alert("Invalid E-mail Address")
document.TheForm.email.focus();
document.TheForm.email.select();
return false;
}

return true;
}



function hideselect(id){


	SDDM_activate(id);

}

function popWin( url, name, width, height, scroller ) {

	if (gotIE) {
	var left = (screen.Width/2) - width/2;
	var top = (screen.Height/2) - height/2;
	} else if (gotNS) {
	var left = (screen.availWidth/2) - width/2;
	var top = (screen.availHeight/2) - height/2;
	} else {
	var left = (screen.Width/2) - width/2;
	var top = (screen.Height/2) - height/2;
	}

var outStr = 'left='+left+',top='+top+',height=' + height + ',width=' + width;

	if (scroller == true) {
		 outStr = outStr + ',menubar=no,toolbar=no,location=no,directories=no,status=yes,scrollbars=1,resizable=no';
	 } else {
		 outStr = outStr + ',menubar=no,toolbar=no,location=no,directories=no,status=yes,scrollbars=no,resizable=no';
	 }

window.open(url, name, outStr);

}


function signup(form)
{
    if (flag == 1)
       return false;

if (! form.fname.value){
alert("Please Enter Your First Name");
form.fname.focus();
form.fname.select();
return false;
}

if (! form.lname.value){
alert("Please Enter Your Last Name");
form.lname.focus();
form.lname.select();
return false;
}

if (! form.email.value){
alert("Please Enter Your Email Address");
form.email.focus();
form.email.select();
return false;
}

if (! (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(form.email.value))){
alert("Invalid E-mail Address")
form.email.focus();
form.email.select();
return false;
}

if (! form.pass.value){
alert("Please Enter A Password");
form.pass.focus();
form.pass.select();
return false;
}


 str = form.pass.value
 var validChars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_-';
 if ((str.length < 3)) {
 alert("Your password must be at least 3 characters.")
 form.pass.focus();
 form.pass.select();
 return false;
 }
 for (var j = 0; j < str.length; j++){
   if(validChars.indexOf(str.charAt(j)) == -1) {
 alert("Your password can only contain letters and numbers.")
 form.pass.focus();
 form.pass.select();
 return false;
 }
 }
	Ctrl = form.pass2;
	if (Ctrl.value =="") {
		validatePromt(Ctrl,"Please Confirm Your Password");
		return false;
	}
	if (form.pass.value != form.pass2.value) {
		validatePromt(Ctrl,"Your passwords do not match");
 		form.pass2.focus();
 		form.pass2.select();
		return false;
	}


flag = 1;
return true;
}


function enewsletter(form)
{
    if (flag == 1)
       return false;

if (form.email.value == '' || form.email.value=='Email Address'){
alert("Please Enter Your Email Address");
form.email.focus();
form.email.select();
return false;
}

if (! (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(form.email.value))){
alert("Invalid E-mail Address")
form.email.focus();
form.email.select();
return false;
}

flag = 1;
return true;


}


function showStatus(sMsg) {
    window.status = sMsg ;
    return true ;
}

function updatenewsletter(str){

	var strarray = str;

    document.getElementById("newslettersignup").innerHTML = strarray;


}


function add_email() {

var fobj = new Array("name");
var cmdoutput = "";
   for(var i = 0;i < fobj.length;i++)
   {

	cmdoutput += fobj[i] + "=" + escape(eval("document.enewsletter."+fobj[i]+".value")) + "&";
   }

	var email = document.enewsletter.email.value;
    	var strURL = "inc_js/add_email.php";
        var querystring = cmdoutput + "email="+email;
	var xmlHttpReq = false;

    if (enewsletter(document.enewsletter)){

    // Mozilla/Safari
    if (window.XMLHttpRequest) {
        xmlHttpReq = new XMLHttpRequest();
            if (xmlHttpReq.overrideMimeType) {
                xmlHttpReq.overrideMimeType('text/xml');
	    }
    }
    // IE
    else if (window.ActiveXObject) {
        xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlHttpReq.open('POST', strURL, true);
    xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlHttpReq.onreadystatechange = function() {
        if (xmlHttpReq.readyState == 4) {
            updatenewsletter(xmlHttpReq.responseText);
        }
    }

    xmlHttpReq.send(querystring);


   }
}

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];}}
}


function Mod10(ccNumb) {  // v2.0
var valid = "0123456789"  // Valid digits in a credit card number
var len = ccNumb.length;  // The length of the submitted cc number
var iCCN = parseInt(ccNumb);  // integer of ccNumb
var sCCN = ccNumb.toString();  // string of ccNumb
sCCN = sCCN.replace (/^\s+|\s+$/g,'');  // strip spaces
var iTotal = 0;  // integer total set at zero
var bNum = true;  // by default assume it is a number
var bResult = false;  // by default assume it is NOT a valid cc
var temp;  // temp variable for parsing string
var calc;  // used for calculation of each digit

// Determine if the ccNumb is in fact all numbers
for (var j=0; j<len; j++) {
  temp = "" + sCCN.substring(j, j+1);
  if (valid.indexOf(temp) == "-1"){bNum = false;}
}

// if it is NOT a number, you can either alert to the fact, or just pass a failure
if(!bNum){
  /*alert("Not a Number");*/bResult = false;
}

// Determine if it is the proper length 
if((len == 0)&&(bResult)){  // nothing, field is blank AND passed above # check
  bResult = false;
} else{  // ccNumb is a number and the proper length - let's see if it is a valid card number
  if(len >= 15){  // 15 or 16 for Amex or V/MC
    for(var i=len;i>0;i--){  // LOOP throught the digits of the card
      calc = parseInt(iCCN) % 10;  // right most digit
      calc = parseInt(calc);  // assure it is an integer
      iTotal += calc;  // running total of the card number as we loop - Do Nothing to first digit
      i--;  // decrement the count - move to the next digit in the card
      iCCN = iCCN / 10;                               // subtracts right most digit from ccNumb
      calc = parseInt(iCCN) % 10 ;    // NEXT right most digit
      calc = calc *2;                                 // multiply the digit by two
      // Instead of some screwy method of converting 16 to a string and then parsing 1 and 6 and then adding them to make 7,
      // I use a simple switch statement to change the value of calc2 to 7 if 16 is the multiple.
      switch(calc){
        case 10: calc = 1; break;       //5*2=10 & 1+0 = 1
        case 12: calc = 3; break;       //6*2=12 & 1+2 = 3
        case 14: calc = 5; break;       //7*2=14 & 1+4 = 5
        case 16: calc = 7; break;       //8*2=16 & 1+6 = 7
        case 18: calc = 9; break;       //9*2=18 & 1+8 = 9
        default: calc = calc;           //4*2= 8 &   8 = 8  -same for all lower numbers
      }                                               
    iCCN = iCCN / 10;  // subtracts right most digit from ccNum
    iTotal += calc;  // running total of the card number as we loop
  }  // END OF LOOP
  if ((iTotal%10)==0){  // check to see if the sum Mod 10 is zero
    bResult = true;  // This IS (or could be) a valid credit card number.
  } else {
    bResult = false;  // This could NOT be a valid credit card number
    }
  }
}

  return bResult; // Return the results
}


function checkeventreg(form){


if (! form.fname.value){
alert("Please Enter The Billing First Name");
form.fname.focus();
form.fname.select();
return false;
}

if (! form.lname.value){
alert("Please Enter The Billing Last Name");
form.lname.focus();
form.lname.select();
return false;
}


if (! form.address1.value){
alert("Please Enter The Billing Address");
form.address1.focus();
form.address1.select();
return false;
}

if (! form.city.value){
alert("Please Enter The Billing City");
form.city.focus();
form.city.select();
return false;
}



if (form.state.selectedIndex == 0){
alert("Please Select The Billing State");
return false;
}


if (! form.zip.value){
alert("Please Enter The Billing ZipCode");
form.zip.focus();
form.zip.select();
return false;
}


if (! form.email.value){
alert("Please Enter The Billing Email Address");
form.email.focus();
form.email.select();
return false;
}

if (! (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,5})+$/.test(form.email.value))){
alert("Invalid E-mail Address")
form.email.focus();
form.email.select();
return false;
}


if (form.country.selectedIndex == 0){
alert("Please Select The Billing Country");
return false;
}


if (form.totalprice.value>0){

if (form.cctype.selectedIndex == 0){
alert("Please Select Your Credit Card Type");
return false;
}

if (! form.ccnum.value){
alert("Please Enter Your Credit Card Number");
form.ccnum.focus();
form.ccnum.select();
return false;
}

 str = form.ccnum.value
 var validChars = '0123456789';
 for (var j = 0; j < str.length; j++){
   if(validChars.indexOf(str.charAt(j)) == -1) {
 alert("Your credit card can only contain numbers with no spaces.")
form.ccnum.focus();
form.ccnum.focus();
return false;
 }
 }


if (! Mod10(form.ccnum.value)){
alert("Invalid Credit Card #.  Please double check");
form.ccnum.focus();
form.ccnum.focus();
return false;
}


if (form.ccexpmonth.selectedIndex == 0){
alert("Please Select Your Credit Card Expiration Month");
return false;
}

if (form.ccexpyear.selectedIndex == 0){
alert("Please Select Your Credit Card Expiration Year");
return false;
}

}

flag=1;
}


function fillshipping() {
if (document.formMain.sameship.checked == true) {
document.formMain.ship_fname.value = document.formMain.fname.value;
document.formMain.ship_lname.value = document.formMain.lname.value;
document.formMain.ship_address1.value = document.formMain.address1.value;
document.formMain.ship_address2.value = document.formMain.address2.value;
document.formMain.ship_city.value = document.formMain.city.value;
document.formMain.ship_state.value = document.formMain.state.value;
document.formMain.ship_zip.value = document.formMain.zip.value;
document.formMain.ship_phone.value = document.formMain.phone.value;
document.formMain.ship_email.value = document.formMain.email.value;
document.formMain.ship_country.value = document.formMain.country.value;
}
else {
document.formMain.ship_fname.value = "";
document.formMain.ship_lname.value = "";
document.formMain.ship_address1.value = "";
document.formMain.ship_address2.value = "";
document.formMain.ship_city.value = "";
document.formMain.ship_state.value = "";
document.formMain.ship_zip.value = "";
document.formMain.ship_phone.value = "";
document.formMain.ship_email.value = "";
document.formMain.ship_country.value = "";
}
}

