/*-------------------------------------------------------
Variables
*/

var arrList = new Array();

/*
 END Variables
-------------------------------------------------------*/


function onFocus(field){
  field.focus();
}

function SelectAll(f,selection){
  for (var i = 0; i < f.options.length; i++){
    f.options[i].selected = selection;
  }
}




/*-------------------------------------------------------
Form Validation Section
*/

function validateAdminLogin(f){
  if(!checkText(f.Admin_UserName,0)){
    alert("Please Enter A Valid User Name.");
    f.Admin_UserName.focus();
    f.Admin_UserName.select();
    return false;
  }
  if(!checkText(f.Admin_Pass,0)){
    alert("Please Enter A Valid Password.");
    f.Admin_Pass.focus();
    f.Admin_Pass.select();
    return false;
  }
  return true;
}

function validateAdminStart(f){
  if(!checkText(f.Admin_FirstName,0)){
    alert("Please Enter A Valid First Name.");
    f.Admin_FirstName.focus();
    f.Admin_FirstName.select();
    return false;
  }
  if(!checkText(f.Admin_LastName,0)){
    alert("Please Enter A Valid Last Name.");
    f.Admin_LastName.focus();
    f.Admin_LastName.select();
    return false;
  }
  if(!checkEmail(f.Admin_Email,0)){
    alert("Please Enter A Valid Email Address.");
    f.Admin_Email.focus();
    f.Admin_Email.select();
    return false;
  }
  if(!checkText(f.Admin_UserName,0)){
    alert("Please Enter A Valid User Name.");
    f.Admin_UserName.focus();
    f.Admin_UserName.select();
    return false;
  }
  if(!checkText(f.Admin_Password,0)){
    alert("Please Enter A Valid Password.");
    f.Admin_Password.focus();
    f.Admin_Password.select();
    return false;
  }
  if(f.Admin_Password.value != f.Admin_Password2.value){
    alert("Passwords Do Not Match.");
    f.Admin_Password.value="";
    f.Admin_Password2.value="";
    f.Admin_Password.focus();
    f.Admin_Password.select();
    return false;
  }
  return true;
}


function validateMessageCenter(f){
//  if(!checkEmail(f.ReplyEmail,0)){
 //   alert("Please Enter A Valid Email Address.");
  //  f.ReplyEmail.focus();
   // f.ReplyEmail.select();
    //return false;
  //}
  if(!checkText(f.BodyMsg,0)){
    alert("Please Type A Message.");
    f.BodyMsg.focus();
    f.BodyMsg	.select();
    return false;
  }
  return true;
}

function validatePageForm(f){
  if(!checkText(f.Page_Name,0)){
    alert("Please Enter A Valid Webpage name.");
    f.Page_Name.focus();
    f.Page_Name.select();
    return false;
  }
  if(!checkText(f.Page_Title,0)){
    alert("Please Enter A Valid Webpage Title.");
    f.Page_Title.focus();
    f.Page_Title.select();
    return false;
  }
  return true;
}

function validateProdForm(f){
  if(!checkText(f.Prod_Name,0)){
    alert("Please Enter A Valid Product Name.");
    f.Prod_Name.focus();
    f.Prod_Name.select();
    return false;
  }
  if(!checkCurrency(f.Prod_Price)){
    alert("Please Enter A Valid Product Price Greater Than Zero(o).");
    f.Prod_Price.focus();
    f.Prod_Price.select();
    return false;
  }
  if(!checkFloat(f.Prod_Weight)){
    alert("Please Enter A Valid Product Weight Greater Than Or Equal To Zero(0).");
    f.Prod_Weight.focus();
    f.Prod_Weight.select();
    return false;
  }
  return true;
}

function validateSpecialForm(f){
  if(!checkSelected(f.Special_ProdIDs)){
    alert ("You Must Select At Least One Product For The Special.");
    f.Special_ProdIDs.focus();
    return false;
  }
  if(f.Special_Discount.value == "Percent"){
    Spec_Discount = !checkPosFloat(f.Special_Discount)
  }else{
    Spec_Discount = !checkCurrency(f.Special_Discount)
  }
  if(Spec_Discount){
    alert ("Please Enter A Valid Discount Greater Than Zero.");
    f.Special_Discount.focus();
    f.Special_Discount.select();
    return false;
  }  
  if(!checkDate(f.Special_GoodUntil)){
    alert("Please Enter A Valid Date Greater Than Or Equal To Today\'s Date\nFormat: MM/DD/YYYY.");
    f.Special_GoodUntil.focus();
    f.Special_GoodUntil.select();
    return false;
  }
  return true;
}
/*
END Form Validation Section
-------------------------------------------------------*/

/*-------------------------------------------------------
Field Type checks
*/

function checkCurrency(field){
  if (!isNaN(parseFloat(field.value)) && !isEmpty(field.value)){
    if (field.value.indexOf(".") == -1){
      if (field.value > 0){ return true;}
      else{ return false;}
    }else{
      if(field.value.length - field.value.indexOf(".") - 1 <= 2 && field.value > 0){ return true;}
      else{ return false;}
    }
  }
  else{
    return 1;
  }
  return 1;
}

function checkDate(field){
  rex=/\b(1[0-2]|0?[1-9])\/(0?[1-9]|[12][0-9]|3[01])\/\d\d\d\d/
  if (rex.test(field.value) == true){
    var nowDate = new Date();
    var specDate = new Date(field.value);
    return specDate >= nowDate;
  }
  else{ return false;}
}

function checkFloat(field){
  if (!isNaN(parseFloat(field.value)) && !isEmpty(field.value)){ return true;}
  else{ return false;}
  return false;
}

function checkZeroPosFloat(field){
  if (!isNaN(parseFloat(field.value)) && !isEmpty(field.value) && field.value >= 0){ return true;}
  else{ return false;}
  return false;
}

function checkPosFloat(field){
  if (!isNaN(parseFloat(field.value)) && !isEmpty(field.value) && field.value > 0){ return true;}
  else{ return false;}
  return false;
}

function checkSelected(opt){
  if(opt.value.length < 1){ return false;}
  else{ return true;}
  return false;
}

function checkText(text,max){
  if(max == 0){
    if(text.value.length < 1){return false;}
  }else{
    if(text.value.length < 1 || text.value.length > max){return false;}
  }
  return true;
}

function checkEmail(incoming)
{
  var emailstring = incoming.value;
  var ampIndex = emailstring.indexOf("@");
  var afterAmp = emailstring.substring((ampIndex + 1), emailstring.length);
  // find a dot in the portion of the string after the ampersand only
  var dotIndex = afterAmp.indexOf(".");
  // determine dot position in entire string (not just after amp portion)
  dotIndex = dotIndex + ampIndex + 1;
  // afterAmp will be portion of string from ampersand to dot
  afterAmp = emailstring.substring((ampIndex + 1), dotIndex);
  // afterDot will be portion of string from dot to end of string
  var afterDot = emailstring.substring((dotIndex + 1), emailstring.length);
  var beforeAmp = emailstring.substring(0,(ampIndex));
  //old regex did not allow subdomains and dots in names
  //var email_regex = /^[\w\d\!\#\$\%\&\'\*\+\-\/\=\?\^\_\`\{\|\}\~]+(\.[\w\d\!\#\$\%\&\'\*\+\-\/\=\?\^\_\`\{\|\}\~])*\@(((\w+[\w\d\-]*[\w\d]\.)+(\w+[\w\d\-]*[\w\d]))|((\d{1,3}\.){3}\d{1,3}))$/;
  var email_regex = /^\w(?:\w|-|\.(?!\.|@))*@\w(?:\w|-|\.(?!\.))*\.\w{2,3}/ 
  // index of -1 means "not found"
  if ((emailstring.indexOf("@") != "-1") && (emailstring.length > 5) && (afterAmp.length > 0) && (beforeAmp.length > 1) && (afterDot.length > 1) && (email_regex.test(emailstring)) ){
    return true;
  }
  else{return false;}
}

function isEmpty(s) {
  var regexpWhitespace = /^\s+$/;
  return  ((s == null) || (s.length == 0) || regexpWhitespace.test(s));
}
/*
END Field Type checks
-------------------------------------------------------*/

/*-------------------------------------------------------
Confirm Deletions
*/

function conDelOrder(Order_ID){
  if(!window.confirm("Are your sure you want to delete this Order?")){return false;}
  else {
    window.location="delorder.asp?Order_ID="+Order_ID;
  }
}

function ConDelProd(){
  if(!window.confirm("Are your sure you want to delete this product?")) {return false;}
  return true;
}

function ConDelOpt()
{
  if(!window.confirm("Are your sure you want to delete this option?")){return false;}
  return true;
}

function ConDelSpec()
{
  if(!window.confirm("Are you sure you wish to delete this special?")){return false;}
  return true;
}
/*
END Confirm Deletions
-------------------------------------------------------*/



function addToList(i,j,name){arrList[i] = new Array(j,name)}
  
function outputList(ar, name, size){
  var strIDs = "<SELECT SIZE=\"" + size + "\" NAME=\"ro_lst" + name + "\">"
  var sel = " SELECTED"
  for (var i=0;i<ar.length;i++){
    strIDs += "<OPTION " + sel + " VALUE=\"" + ar[i][0] + "\">" + ar[i][1]
    sel = ""
  }
  strIDs+="</SELECT>"
  strIDs+="<INPUT NAME=\"" + name + "\" TYPE=hidden>"
  return strIDs
}

function outputButton(bDir,name,val){return "<INPUT TYPE=button VALUE=\"" + val + "\" ONCLICK=\"move(this.form," + bDir + ",'" + name + "')\">"}

function move(f,bDir,sName){
  var el = f.elements["ro_lst" + sName]
  var idx = el.selectedIndex
  if (idx==-1){alert("You must first select the item to reorder.")}
  else{
    var nxidx = idx+( bDir? -1 : 1)
    if (nxidx<0) {nxidx=el.length-1}
    if (nxidx>=el.length) {nxidx=0}
    var oldVal = el[idx].value
    var oldText = el[idx].text
    el[idx].value = el[nxidx].value
    el[idx].text = el[nxidx].text
    el[nxidx].value = oldVal
    el[nxidx].text = oldText
    el.selectedIndex = nxidx
  }
}

function processForm(f){
  for (var i=0;i<f.length;i++){
    var el = f[i]
    if (el.name.substring(0,6)=="ro_lst"){
      var strIDs = ""
      for (var j=0;j<f[i].options.length;j++) {strIDs += f[i].options[j].value + ", "}
      f.elements[f.elements[i].name.substring(6)].value = strIDs.substring(0,strIDs.length-2)
    }
  }
}