/*******************************/
/*       DISPLAY FLASH         */
/*******************************/
function writeFlashObject(protocol, filename, _w, _h,_t) {
	var FlshTags= '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="' + protocol + '://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="' + _w + '" height="' + _h + '" title="' + _t + '">'
	+ '<param name="movie" value="' + filename + '" />'
	+ '<param name="wmode" value="transparent">'
	+ '<param name="quality" value="high" />'
	+ '<embed src="' + filename + '" quality="high" pluginspage="' + protocol + '://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" width="' + _w + '" height="' + _h + '"></embed>'
	+ '</object>';
	document.write(FlshTags);
}

function closeNews(){
 var divElement = document.getElementById("newsbox");
 divElement.style.display = "none";
}

function writeNews(msglnk){
	var News = '<div id="newsbox" style="display:block"><a href="#" onclick="closeNews()"><span class="imglink">' + msglnk + '</span></a></div>';
	document.write(News);
}


/*******************************/
/*    DISPLAY RANDOM FLASH     */
/*******************************/
function writeRandomFlashObject(protocol, filename, _w, _h,_t,low,high) {
	var filename_array=filename.split(".");
	var newFilename = "";
	var arrlen = filename_array.length;
	numPosibile = high - low;
	randomize = Math.random() * numPosibile;
	randomize = Math.round(randomize);
	randomize = parseInt(low) + randomize;
	for (i=0; i<arrlen-1; i++){
	 newFilename += filename_array[i];
	 if (i<arrlen-2){
	   newFilename+= "." ;
	 }
	}
	newFilename += randomize + "." + filename_array[arrlen-1];
	writeFlashObject(protocol, newFilename, _w, _h,_t);
}


/*******************************/
/*      DISPLAY STATES         */
/*******************************/
function getStates(itemID,itemList){
 var affField = document.getElementById(itemID);
 var OptCount = affField.options.length;
 var stateOther = document.getElementById('stateEntryOther');

 if (itemList == 'US'){
  var NArray = ['0,Select a state','AK,Alaska','AL,Alabama','AR,Arkansas','AZ,Arizona','CA,California','CO,Colorado','CT,Connecticut','DC,District of Columbia','DE,Delaware','FL,Florida','GA,Georgia','HI,Hawaii','IA,Iowa','ID,Idaho','IL,Illinois','IN,Indiana','KS,Kansas','KY,Kentucky','LA,Louisiana','MA,Massachusetts','MD,Maryland','ME,Maine','MI,Michigan','MN,Minnesota','MO,Missouri','MS,Mississippi','MT,Montana','NC,North Carolina','ND,North Dakota','NE,Nebraska','NH,New Hampshire','NJ,New Jersey','NM,New Mexico','NV,Nevada','NY,New York','OH,Ohio','OK,Oklahoma','OR,Oregon','PA,Pennsylvania','RI,Rhode Island','SC,South Carolina','SD,South Dakota','TN,Tennessee','TX,Texas','UT,Utah','VA,Virginia','VT,Vermont','WA,Washington','WI,Wisconsin','WV,West Virginia','WY,Wyoming'];
 }else if (itemList == 'CA'){
  var NArray = ['0,Select a province','AB,Alberta','BC,British Columbia','MB,Manitoba','NB,New Brunswick','NL,Newfoundland and Labrador','NT,Northwest Territories','NS,Nova Scotia','NU,Nunavut','ON,Ontario','PE,Prince Edward','QC,Quebec','SK,Sasketchewan','YT,Yukon Territory'];
 }else{
  var NArray = ['OT,Other'];
 }
 
 var ArrLen = NArray.length; 
 if (OptCount > 0){
  for (var i = OptCount - 1; i>=0; i--){
   affField.remove(i);
  }
 }
 for (var i=0; i<ArrLen; i++) {
  var option = document.createElement('option');
  var ArrVals =  NArray[i].split(',');
  option.value = ArrVals[0];
  option.text = ArrVals[1];
  if (i==0){
   option.selected = true;
  }
  try {
   affField.add(option,null); // standards compliant; doesn't work in IE
  }
  catch(ex) {
   affField.add(option); // IE only
  }  
 }
 if (ArrLen == 1){
  stateOther.style.display='block';
  affField.style.display='none';
 }else{
  stateOther.style.display='none';
  stateOther.value= "";
  affField.style.display='block';
 }
}


/*******************************/
/*       CHECK ACCOUNT         */
/*******************************/
function valAccount(thisform,fieldName){
 var formAccount = eval("document."+ thisform +"." + fieldName);
 if (formAccount.value == ""){
  alert("Username is required");
  formAccount.focus();
  return false;
 }else{
  return true;
 }
}


/*******************************/
/*      CHECK FIRST NAME       */
/*******************************/
function valName(thisform,fieldName){
 var formName = eval("document."+ thisform +"." + fieldName);
 if (formName.value == ""){
  alert("First name is required");
  formName.focus();
  return false;
 }else{
  return true;
 }
}


/*******************************/
/*      CHECK LAST NAME        */
/*******************************/
function valLastName(thisform,fieldName){
 var formLastName = eval("document."+ thisform +"." + fieldName);
 if (formLastName.value == ""){
  alert("Last name is required");
  formLastName.focus();
  return false;
 }else{
  return true;
 }
}


/*****************************************/
/* CHECK FIRST NAME AND LAST NAME LENGTH */
/*****************************************/
function valFullName(thisform,Name,LastName){
 var formFullName = eval("document."+ thisform +"." + Name + ".value") + " " + eval("document."+ thisform +"." + LastName + ".value"); 
 if (formFullName.length < 5){
  alert("Customer name and last name are too short or have invalid characters");
  eval("document."+ thisform +".txtName").select();
  return false;
 }else{
  return true;
 }
}


/*****************************************/
/*           CHECK ADDRESS               */
/*****************************************/
function valAddress(thisform,fieldName){
 var formAddress = eval("document."+ thisform +"." + fieldName);
 if (formAddress.value == ""){
  alert("Address is required");
  formAddress.focus();
  return false;
 }else{
  return true;
 }
}


/*****************************************/
/*        CHECK STATE OR PROVINCE        */
/*****************************************/
function valState(thisform,country,state,ostate){
 var validStatus  = true;
 var formCountry  = eval("document."+ thisform +"." + country);
 var formState    = eval("document."+ thisform +"." + state);
 var formOTState  = eval("document."+ thisform +"." + ostate);
	
 // PERFORM ALL STATE VALIDATIONS IF COUNTRY IS US
 if ((validStatus) && (formCountry.value == "US") && (formState.value == "0")){
  alert("State is required");
  formState.focus();
  validStatus = false;
 }else if((validStatus) && (formCountry.value == "US") && (formState.value == "OT")){
  alert("Select a valid State");
  formState.focus();
  validStatus = false;
 }else if ((validStatus) && (formCountry.value == "US") && ((formState.value == "AB") || (formState.value == "BC") || (formState.value == "MB") || (formState.value == "NB") || (formState.value == "NL") || (formState.value == "NT") || (formState.value == "NS") || (formState.value == "NU") || (formState.value == "ON") || (formState.value == "PE") || (formState.value == "QC") || (formState.value == "SK") || (formState.value == "YT"))){
  alert("Select a valid State");
  formState.focus();
  validStatus = false;
 }
 
 // PERFORM ALL PROVINCE VALIDATIONS IF COUNTRY IS CA
 if ((validStatus) && (formCountry.value  == "CA") && (formState.value == "0")){
  alert("Province is required");
  formState.focus();
  validStatus = false;
 }else if((validStatus) && (formCountry.value  == "CA") && (formState.value == "OT")){
  alert("Select a valid Province");
  formState.focus();
  validStatus = false;
 }else if ((validStatus) && (formCountry.value  == "CA") && ((formState.value != "AB") && (formState.value != "BC") && (formState.value != "MB") && (formState.value != "NB") && (formState.value != "NL") && (formState.value != "NT") && (formState.value != "NS") && (formState.value != "NU") && (formState.value != "ON") && (formState.value != "PE") && (formState.value != "QC") && (formState.value != "SK") && (formState.value != "YT"))){
  alert("Select a valid Province");
  formState.focus();
  validStatus = false;
 }
 
 // PERFORM ALL PROVINCE/STATE VALIDATIONS IF COUNTRY IS NOT US OR CA
 if ((validStatus) && (formCountry.value  != "US") && (formCountry.value  != "CA") && (formState.value == "OT" || formState.value == "0") && (formOTState.value == "")){
  alert("Province/State is required");
  formOTState.focus();
  validStatus = false;
 }
 
 if (!validStatus){
  return false;
 }else{
   return true;
 }
}


/*****************************************/
/*            CHECK CITY                 */
/*****************************************/
function valCity(thisform,fieldName){
 var formCity = eval("document."+ thisform +"." + fieldName);
 if (formCity.value == ""){
  alert("City is required");
  formCity.focus();
  return false;
 }else{
  return true;
 }
}


/*****************************************/
/*         CHECK ZIP/POSTAL CODE         */
/*****************************************/
function valZip(thisform,country,zip){
 var validStatus  = true;
 var formCountry  = eval("document."+ thisform +"." + country);
 var formZip      = eval("document."+ thisform +"." + zip);

 // check Zip Code if country is US 
 if ((validStatus) && (formCountry.value  == "US") && (formZip.value == "")){
  alert("Zip Code is required");
  formZip.focus();
  validStatus = false;
 }else if ((validStatus) && (formCountry.value  == "US") && (formZip.value != "")){
  if (formZip.value.search(/^\d{5}[ |-]\d{4}$|^\d{5}$|^\d{9}$/) == -1){
   alert("Please enter a valid Zip Code");
   formZip.select();
   validStatus = false;
  }
 }
 
 // Check Postal Code if country is Canada
 if ((validStatus) && (formCountry.value  == "CA") && (formZip.value == "")){
  alert("Postal Code is required");
  formZip.focus();
  validStatus = false;
 }else if ((validStatus) && (formCountry.value  == "CA") && (formZip.value != "")){
  if (formZip.value.search(/^[A-Z|a-z]\d[A-Z|a-z][ |-]?\d[A-Z|a-z]\d$/) == -1){
   alert("Please enter a valid Postal Code");
   formZip.select();
   validStatus = false;
  }
 }
 
 if ((validStatus) && (formCountry.value  != "CA") && (formCountry.value  != "US") && (formZip.value == "")){
  alert("Zip Code is required");
  formZip.focus();
  validStatus = false;
 }
 if (!validStatus){
  return false;
 }else{
   return true;
 }
}
  

/*****************************************/
/*          CHECK PHONE NUMBER           */
/*****************************************/
function valPhone(thisform,fieldName){
 var validStatus  = true;
 var formPhone    = eval("document."+ thisform +"." + fieldName);

 if ((validStatus) && (formPhone.value == "")){
  alert("Phone number is required");
  formPhone.focus();
  validStatus = false;
 }else if ((validStatus) && (formPhone.value.length < 10)) {
  alert("Phone must be at least 10 digits");
  formPhone.select();
  validStatus = false;
 }else if ((validStatus) && (formPhone.value.search(/^[0-9]+$/) == -1)){
  alert("Please enter a valid phone number\n Ej:18008017390"); 
  formPhone.select();
  validStatus = false;
 }
 
 if (!validStatus){
  return false;
 }else{
   return true;
 }
}


/*****************************************/
/*         CHECK EMAIL ADDRESS           */
/*****************************************/
function valEmail(thisform,fieldName){
 var validStatus  = true;
 var formEmail    = eval("document."+ thisform +"." + fieldName);

 if ((validStatus) && (formEmail.value == "")){
  alert("Please provide an email address");
  formEmail.focus();
  validStatus = false;
 }else if ((validStatus) && (formEmail.value.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) == -1)){
  alert("Please enter a valid email address");
  formEmail.select();
  validStatus = false;
 }

 if (!validStatus){
  return false;
 }else{
   return true;
 }
}


/********************************************/
/* CHECK PASSWORD AND PASSWORD CONFIRMATION */
/********************************************/
function valPasswordConf(thisform,pass,Cpass){
 var validStatus   = true;
 var formPassword  = eval("document."+ thisform +"." + pass);
 var formCPassword = eval("document."+ thisform +"." + Cpass);

 if (formPassword.value == ""){
  alert("Password is required");
  formPassword.focus();
  validStatus = false;
 }else if (formPassword.value.length < 4){
  alert("Password too short. 4 characters minimun");
  formPassword.select();
  validStatus = false;
 }else if (formPassword.value != formCPassword.value){
  alert("Passwords does not match");
  formCPassword.focus();
  validStatus = false;
 }

 if (!validStatus){
  return false;
 }else{
   return true;
 }
}


/********************************************/
/* CHECK PASSWORD AND PASSWORD CONFIRMATION */
/********************************************/
function valPassword(thisform,fieldName){
 var formPassword  = eval("document."+ thisform +"." + fieldName);
 if (formPassword.value == ""){
  alert("Password is requireds");
  formPassword.focus();
  return false;
 }else{
  return true;
 }
}


/********************************************/
/*           CHECK REFERRALS                */
/********************************************/
function valRef(thisform,RefAmount){
 var validStatus = true;
 var rafCount = 0;

 for (i=1; i<=RefAmount; i++){
  var formName = eval("document."+ thisform +"." + "ref" + i + "name");
  var formLastName = eval("document."+ thisform +"." + "ref" + i + "lastn");
  var formEmail = eval("document."+ thisform +"." + "ref" + i + "mail");
  var nameCount = 0;
  var lnameCount = 0;
  var emailCount = 0;
  if (formName.value != ""){nameCount++;}
  if (formLastName.value != ""){lnameCount++;}
  if (formEmail.value != ""){emailCount++;}
  if (nameCount > 0 || lnameCount > 0 || emailCount > 0){
   if (valName(thisform,"ref" + i + "name") && valLastName(thisform,"ref" + i + "lastn") && valEmail(thisform,"ref" + i + "mail")){
	  rafCount++;
   }else{
     validStatus = false;
	 break;
   }
  }
 }
 if (validStatus && rafCount == 0){
   alert("You need to fill out at least one referral to continue");
   return false
 }else if(!validStatus){
   return false;
 }else{
	return true;
 }
}

/********************************************/
/*          VALIDATE FORMS - MAIN           */
/********************************************/
function Validator(thisform){
 var valid = true;
 switch (thisform) {
  case "SignupForm" :
        if (!valName(thisform,'nameFirstEntry'))                     {valid = false; return false;} else {valid = true;}
        if (!valLastName(thisform,'nameLastEntry'))                  {valid = false; return false;} else {valid = true;}
        if (!valFullName(thisform,'nameFirstEntry','nameLastEntry')) {valid = false; return false;} else {valid = true;}
		if (!valAddress(thisform,'address1Entry'))                   {valid = false; return false;} else {valid = true;}
		if (!valCity(thisform,'cityEntry'))                          {valid = false; return false;} else {valid = true;}
		if (!valState(thisform,'countryEntry','stateEntry','stateEntryOther')){valid = false; return false;} else {valid = true;}
        if (!valZip(thisform,'countryEntry','zipEntry'))             {valid = false; return false;} else {valid = true;}
		if (!valEmail(thisform,'emailEntry'))                        {valid = false; return false;} else {valid = true;}
		if (!valPhone(thisform,'homePhoneEntry'))                    {valid = false; return false;} else {valid = true;}
        if (!valPasswordConf(thisform,'passwordEntry','confirmPasswordEntry')) {valid = false; return false;} else {valid = true;}
        break;
  case "AffSignupForm":
        if (!valName(thisform,'nameFirstEntry'))                     {valid = false; return false;} else {valid = true;}
        if (!valLastName(thisform,'nameLastEntry'))                  {valid = false; return false;} else {valid = true;}
        if (!valFullName(thisform,'nameFirstEntry','nameLastEntry')) {valid = false; return false;} else {valid = true;}
		if (!valAddress(thisform,'address1Entry'))                   {valid = false; return false;} else {valid = true;}
		if (!valCity(thisform,'cityEntry'))                          {valid = false; return false;} else {valid = true;}
		if (!valState(thisform,'countryEntry','stateEntry','stateEntryOther')){valid = false; return false;} else {valid = true;}
        if (!valZip(thisform,'countryEntry','zipEntry'))             {valid = false; return false;} else {valid = true;}
		if (!valEmail(thisform,'emailEntry'))                        {valid = false; return false;} else {valid = true;}
		if (!valPhone(thisform,'homePhoneEntry'))                    {valid = false; return false;} else {valid = true;}
        if (!valPasswordConf(thisform,'passwordEntry','confirmPasswordEntry')) {valid = false; return false;} else {valid = true;}
  		break
  case "login" :
        if (!valAccount(thisform,'customerID'))  {valid = false; return false;} else {valid = true;}
        if (!valPassword(thisform,'password'))   {valid = false; return false;} else {valid = true;}
        break;
  case "forgotpassword":
        if (!valAccount(thisform,'customerN'))  {valid = false; return false;} else {valid = true;}
		break;
  case "RAF":
        if (!valAccount(thisform,'customerN'))                      {valid = false; return false;} else {valid = true;}
        if (!valName(thisform,'nameFirstEntry'))                     {valid = false; return false;} else {valid = true;}
        if (!valLastName(thisform,'nameLastEntry'))                  {valid = false; return false;} else {valid = true;}
		if (!valEmail(thisform,'emailEntry'))                        {valid = false; return false;} else {valid = true;}
		if (!valRef(thisform,4)) 				                     {valid = false; return false;} else {valid = true;}
  		break;
 }
}

navigator.cookiesAreEnabled = _cookiesAreEnabled;

/*****************************************/
/*         ARE COOKIES ENABLED?          */
/*****************************************/
function _cookiesAreEnabled() {
 SetCookies( "foo", "bar" );
 if ( GetCookies( "foo" ) ) {
  DeleteCookies( "foo" );
  return true;
 }else{
  return false;
 }
}


/*****************************************/
/*             SET A COOKIE              */
/*****************************************/
function SetCookies( name, value, expires, path, domain, secure ) {
 document.cookie = name + "=" + escape (value) + ( ( expires ) ? "; expires=" + expires.toGMTString() : "" ) + ( ( path ) ? "; path=" + path : "" ) + ( ( domain ) ? "; domain=" + domain : "" ) + ( ( secure ) ? "; secure" : "" );
}


/*****************************************/
/*            GET A COOKIE              */
/*****************************************/
function GetCookies( name ) {
 var arg = name + "=";
 var alen = arg.length;
 var clen = document.cookie.length;
 var i = 0;
 while ( i < clen ) {
  var j = i + alen;
  if ( document.cookie.substring(i, j) == arg ) return getCookiesVal(j);
  i = document.cookie.indexOf( " ", i ) + 1;
  if ( i == 0 ) break;
 }
 return null;
}


/*****************************************/
/*            DEL A COOKIE              */
/*****************************************/
function DeleteCookies( name, path, domain ) {
 if ( GetCookies( name ) ) {
  document.cookie = name + "=" + ( ( path ) ? "; path=" + path : "" ) + ( ( domain ) ? "; domain=" + domain : "" ) + "; expires=Thu, 01-Jan-70 00:00:01 GMT";
 }
}


/*****************************************/
/*          GET A COOKIE VAL            */
/*****************************************/
function getCookiesVal( offset ) {
 var endstr = document.cookie.indexOf ( ";", offset );
 if ( endstr == -1 ) endstr = document.cookie.length;
 return unescape( document.cookie.substring( offset, endstr ) );
}


/*****************************************/
/*           TEST JAVASCRIPT             */
/*****************************************/
function JavaScriptTest(){
 window.alert( "JavaScript is enabled!" );
}


function cookieTest(URL){
 var CookiesEnabled = false;
 if(!navigator.cookiesAreEnabled())
  window.location = "" +  URL + ""
}

function showHide(pDiv){
 var divElement = document.getElementById(pDiv);
 if (divElement.style.display == 'none'){
  divElement.style.display = 'block';
 }else{
  divElement.style.display = 'none';
 }
}
