  
   var gEmailMsg = "";

   function fncFocusInput()
   {
       var id = this.id;
     
       var colorSwap =  new fx.Color(this.id, {fromColor: "#FFFFFF", toColor: "#EFEFEF"});
       var borderSwap = new fx.Color(this.id, {fromColor: "#CCCCCC", toColor: "#0066FF", property: "borderColor"});
       colorSwap.toggle();
       borderSwap.toggle();

       $(id).parentNode.insertBefore($('warningfs'),$(id).nextSibling);     
   }

   function fncBlurInput()
   {
       var id = this.id;

       var colorSwap =  new fx.Color(this.id, {fromColor: "#EFEFEF", toColor: "#FFFFFF"});
       var borderSwap = new fx.Color(this.id, {fromColor: "#0066FF", toColor: "#CCCCCC", property: "borderColor"});
       colorSwap.toggle();
       borderSwap.toggle();

       if (id == 'email' && $(id).value.length > 3)
       { 
           fncValidateEmail($(id));
       }	

       if (id == 'password2')
       {
           fncPasswordMatch($(id));
       }
   } 

   function fncValidateForm()
   {
    
       var content = "Please correct the following fields.";
       var sl = content.length;

       if ($F('email').length == 0) content = content + "<br />Please enter a valid <b>Email Address</b>";
       else if (gEmailMsg.length != "") content = content + "<br />"+ gEmailMsg;
       if ($F('password').length == 0) content = content + "<br />Please enter <b>Password</b>";
       if ($F('password') != $F('password2'))  content = content + "<br />Your <b>Passwords do not match</b>";
       if ($F('password').length < 5)  content = content + "<br />Your <b>Password must be 5 or more characters</b>";
       if ($F('first_name').length == 0)  content = content + "<br />Please enter your <b>First Name</b>";
       if ($F('last_name').length == 0)  content = content + "<br />Please enter your <b>Last Name</b>";
       
       var elGender = document.signupForm.gender;
       if (elGender[0].checked == false && elGender[1].checked == false ) content = content + "<br />Please specify your <b>Gender</b>";
       if ($F('country') == '') content = content + "<br />Please choose your <b>Country</b>";
       if ($('citydata').value == '') content = content + "<br />Please enter your <b>City</b>";

       if (sl == content.length) return true;
       else 
       {
           $('warningfs').style.display = "none";
           $('errormsg').innerHTML = content;
           $('errorfs').style.display = "block";

           var colorSwap =  new fx.Color($('errormsg'), {fromColor: "#FFFFCC", toColor: "#FFDBB7"});
           var borderSwap = new fx.Color($('errormsg'), {fromColor: "#FFFFFF", toColor: "#C66300", property: "borderColor"});
           colorSwap.toggle();
           borderSwap.toggle();
           return false;
       }
   }


   function fncValidateEmail(objEmail)
   {
       var strEmail = objEmail.value;
       var pattern = /^[a-z][_.a-z0-9-]+@[a-z0-9][a-z0-9-]+\.[a-z]+([.]?[a-z][a-z]+)*/;
       var results = pattern.test(strEmail);
        
       if (results == false)
       {
           gEmailMsg = "Please enter a valid <b>Email Address</b>.";

           $('warningfs').style.top = getActualTop(objEmail) - 15 ;
           $('warningfs').style.left = getActualLeft(objEmail);

//             $('warningfs').style.top = $('warningfs').style.left + 0 ;
//           $('warningfs').style.left = $('warningfs').style.left + 0;

           $('warningmsg').innerHTML = gEmailMsg;           
           $('warningfs').style.display = "block";
       }
       else
       {
           $('warningfs').style.display = "none";
       }

       return;
   }
   
   function fncZipcodeCheck()
   {
       var bSendRequest = false;

       switch(gCountry_id) 
       {
           case '1': 
               // US Zipcode
               var pattern = /^\d{5}$/;
               if (pattern.test($F('zipcode'))) 
               {
                   bSendRequest = true;
               }
             break;
           case '3': 
               // Canada Postal Code
               var pattern = /^[a-zA-Z]\d[a-zA-Z](\s)?\d[a-zA-Z]\d/;
               if (pattern.test($F('zipcode'))) 
               {
                    bSendRequest = true;
               } 
             break;
       }

       if (bSendRequest) 
       {
           var url = 'zipCode.php';
           var params = 'zipcode=' + $F('zipcode') + '&code='+gCountry_id;
           var ajax = new Ajax.Request(
             url, 
             {
                 method: 'get', 
                 parameters: params, 
                 onComplete: fncZipResponse
             }
         );
       }
   }

   function fncZipResponse(originalRequest)
   {
       var strData =  originalRequest.responseText;       
       var aData = strData.split('~');

       $('statedata').value = aData[0];
       $('citydata').value = aData[1];
   }

   function fncPasswordMatch(objPassword2)
   {
       $('warningfs').style.top = getActualTop(objPassword2) + 15;
       $('warningfs').style.left = getActualLeft(objPassword2);

       if ($F('password').length == 0 && $F('password2').length >= 1)
       {
           $('warningmsg').innerHTML = "You should enter a passwords first.";
           $('warningfs').style.display = "block"; 
       }
       else if ($F('password') != $F('password2'))
       {
           $('warningmsg').innerHTML = "Your password does not match.";
           $('warningfs').style.display = "block"; 
       }
       else {
           $('warningfs').style.display = "none";
       }
   }
   
   var gCountry = 0;

   function fncCheckCountry()
   {
       var cid = ($F('country'));
       gCountry_id = cid; 

       switch (cid)
       {
           case '1': 
              $('zip').innerHTML = "Current zipcode:"; 
              $('ziprow').style.display = "inline";
              $('state').innerHTML = "Current state:";
              $('staterow').style.display = "inline";
             break;
           case '3': 
              $('zip').innerHTML = "Current postal code:"; 
              $('ziprow').style.display = "inline";
              $('state').innerHTML = "Current province:";
              $('staterow').style.display = "inline";
             break; 
           default: $('ziprow').style.display = "none"; $('staterow').style.display = "none";
       }
   }

   var giTest = 0;

   function fncPasswordStrength()
   {
        var iTest = 0;
	var strInput = $F('password');
        if (strInput.length > 5) {iTest++;}
        if (strInput.match(/[A-Z]/)) {iTest++;}
        if (strInput.match(/[0-9]/)) {iTest++;}

        for (var i = 0; i <= strInput.length;i++)
        {
            if (strInput.charCodeAt(i) >= 33 && strInput.charCodeAt(i) <= 47) {iTest++; break;}
        }

        if (strInput.length <= 5) {iTest = 0;}

        var myEffect = new fx.Width($(pwstr));
        myEffect.up =   function(value) { var step = 50; this.custom(value,value+step); }
        myEffect.down = function(value) { var step = 50; this.custom(value+step,value); }
        var d  = $(pwstr);

        switch (iTest)
        {
           case 0: if (iTest  < giTest){myEffect.down(100);} d.innerHTML = "Very Poor"; break;
           case 1: if (giTest < iTest) {myEffect.up(100);  } else if (iTest < giTest) {myEffect.down(100);} d.innerHTML = "Poor"; break;
           case 2: if (giTest < iTest) {myEffect.up(200);  } else if (iTest < giTest) {myEffect.down(200);} d.innerHTML = "Fair"; break;
           case 3: if (giTest < iTest) {myEffect.up(300);  } else if (iTest < giTest) {myEffect.down(300);} d.innerHTML = "Good"; break;
           case 4: if (giTest < iTest) {myEffect.up(400);  } else if (iTest < giTest) {myEffect.down(400);} d.innerHTML = "Very Good"; break;
        }
        giTest = iTest;
   }

function getActualLeft(oElement) {

    var iLeft = 0;
    var oNode = oElement;

    while (oNode != document.body) {
        iLeft += oNode.offsetLeft;
        oNode = oNode.offsetParent;
    }
    return iLeft;
}

function getActualTop(oElement) {

    var iTop = 0;
    var oNode = oElement;

    while (oNode != document.body) {
        iTop += oNode.offsetTop;
        oNode = oNode.offsetParent;
    }

    return iTop;
}

function DrDw(F)
{
    var aCL=F.split("~");
    var iC=aCL.length;
    if(aCL[iC-1]==""){iC--}
    var i=0;
    var sS="";
    while(i<iC)
    {
        if(aCL[i]=="SELECTED")
        {
            sS=aCL[i+1];
            i++;
        }
        document.write("<option id=\""+aCL[i]+"\" value=\""+aCL[i]+"\""+((sS==aCL[i])?" selected":"")+">"+aCL[i+1]);
        i=i+2;
    }
}
