  var clicked_image_captcha = 0; 
  function toggle_image(offset) {
    var img = document.getElementById('thumb_' + offset);
    var input = document.getElementById('prof_' + offset);
    if (!img || !input) {
        return;
    }
    if (input.value == 1) {
        input.value = 0;
        img.width = img.width*2;
        img.height = img.height*2;
    } else {
    	clicked_image_captcha = 1;
        input.value = 1;
        img.width = img.width/2;
        img.height = img.height/2;
    }
}

    Event.observe('un', 'keyup', CleanUsername, false);
    Event.observe('un', 'keydown', CleanUsername, false);
    
    function CleanUsername() {
      var reservedNames =new Array("admin","support","ooyah","liamtoh","hotmail","yahoo");
      var x = 0;
	  var mychar = document.reg.un.value.slice(0,1);
	  var filter = /[^a-zA-Z0-9]/i;
	  if (mychar.match(/[0-9]/i)) {
		alert("Your username cannot start with a number.");
		document.reg.un.value = "";
	  } else if (filter.test(document.reg.un.value)) {
		document.reg.un.value = document.reg.un.value.replace(/[^a-zA-Z0-9]/i,'');
	  }
 
      for (x = 0; x < reservedNames.length;x++) {
        if (document.reg.un.value.toLowerCase().indexOf(reservedNames[x]) != -1 ) {
          alert("Your username cannot contain the word " + reservedNames[x] + ".");
          document.reg.un.value = "";
        }
      }
    }
    
    Event.observe('ac', 'change', toggleZip, false);
    function toggleZip() {
      if (document.reg.ac.value == "US") {
        $('us_zip').removeClassName('hide');
        $('us_zip').addClassName('show');
        /*
        $('sms').removeClassName('show');
        $('sms').addClassName('hide');
        */
      } else {
        $('us_zip').removeClassName('show');
        $('us_zip').addClassName('hide');
       /*
        $('sms').removeClassName('show');
        $('sms').addClassName('hide');
        */
      }
    }
    /*
    Event.observe('sms_number_areacode', 'keyup', (function (e) { cleanSmsNumber(Event.element(e)); }), false);
    Event.observe('sms_number_areacode', 'keydown', (function (e) { cleanSmsNumber(Event.element(e)); }), false);
    Event.observe('sms_number_prefix', 'keyup', (function (e) { cleanSmsNumber(Event.element(e)); }), false);
    Event.observe('sms_number_prefix', 'keydown', (function (e) { cleanSmsNumber(Event.element(e)); }), false);
    Event.observe('sms_number_suffix', 'keyup', (function (e) { cleanSmsNumber(Event.element(e)); }), false);
    Event.observe('sms_number_suffix', 'keydown', (function (e) { cleanSmsNumber(Event.element(e)); }), false);
    function cleanSmsNumber(id) {
      var filter = /[^0-9]/i;
      if (filter.test($(id).value)) {
        $(id).value = $(id).value.replace(/[^0-9]/i,'');
      }
    }
    */
    
    Event.observe('reg', 'submit', (function (e) { checkRegister(e); }), false);
    function checkRegister(e) {
	  var errors = "";
      var un = document.reg.un.value;
      var altun;
      var pw = document.reg.pw.value;
      var pwc = document.reg.pwc.value;
      var ue = document.reg.ue.value;
      var emailFilter=/^.+@.+\..{2,3}$/;
      var emailFilter2=/^[a-z0-9][^\(\)\<\>\@\,\;\:\\\"\[\]]*\@[a-z0-9][a-z0-9\-\.]*\.[a-z]{2,4}$/i;
      // the same regex as register.php 
      var emailFilter3=/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9\-\.]+\.[a-z]{2,4}$/i;
      var emailBadPrefix=/^www\./i;
      var unBlacklist=/^.*(Yah[o0]{2}|H[o0]tma[i1][l1]|Gma[i1][l1]|G[o0]{2}g[l1]eMa[i1][l1]|AOL|aim).*$/i;
      var screennameFilter = /^[a-zA-Z0-9]{2,}$/i;
      var screennameFilter2 = /^(aim|icq)$/i;
     
     /*
      var sms_areacode = window.document.reg.sms_number_areacode.value;
      var sms_prefix = window.document.reg.sms_number_prefix.value;
      var sms_suffix = window.document.reg.sms_number_suffix.value;
      */

	  if (document.reg.ug.value == 0) { errors += "You did not specify your gender.\n"; }
	  if (document.reg.umg.value == 0) { errors += "You did not specify what you are seeking.\n"; }
		
      if(document.reg.altun) {
        for (i=0; i < document.reg.altun.length; i++) {
          if (altun == null && document.reg.altun[i].checked) {
            altun = document.reg.altun[i].value;
          }
        }
      }
      
      if (typeof( document.reg.site_for ) != "undefined" && document.reg.site_for.value == "") {
        errors += "You did not specify what you are on the site for.\n";
      }
	  
	  if (un == "" && altun == null) {
		errors += "You did not specify a username.\n";
	  } else {
		if (un.length < 5 && altun == null) {
			errors += "Your username must be at least 5 characters in length.\n";
		} else {
        unBlacklistArray = unBlacklist.exec(un);
        if (unBlacklistArray) errors += "You can not use \"" + unBlacklistArray[1] + "\" in your username.\n";
        }
	  }
	  
	  if (pw == "") {
		errors += "You did not specify a password.\n";
	  } else {
		if (pw != pwc) {
			errors += "You must enter your password twice to confirm it.\n";
		}
		else
		{
			if(pw.length < 6)
			  {
			  	errors += "Your password must be at least six characters in length.\n";
			  }
		}
	  }

	  if (ue.length == 0) {
		errors += "You did not enter your email address.\n";
	  } else {
		if (!(emailFilter3.test(ue))) {
			errors += "You did not enter a valid email address.\n";
		} else if (emailBadPrefix.test(ue)) {
			errors += "Please double check your email address - You specified that is starts with www. like a web address.\n";
                }
	  }
	  
      if (document.reg.dob_year.value == "") {
        errors += "Please select your date of birth.\n";
      }

	  if (document.reg.act.value == 0) { errors += "You did not specify your city/town.\n"; }
	  if (document.reg.ac.value == "US" && document.reg.az.value == "") { errors += "You did not specify your zipcode.\n"; }
      if (document.reg.im_provider.value != "-1") {
        if (!screennameFilter.test(document.reg.im_screenname.value) || screennameFilter2.test(document.reg.im_screenname.value)) { errors += "You did not specify a proper AIM Screenname/ICQ #. (only letters and numbers allowed)\n"; }
      }
      
	  /*
      if(sms_areacode || sms_prefix || sms_suffix) {
        if(sms_areacode.length + sms_prefix.length + sms_suffix.length < 10) {
          errors += "Your mobile phone number does not contain 10 digits.\n"
        }
      }
      */
	  if(typeof( document.reg.code ) != "undefined") {
	      if (document.reg.code.value.length < 3) {
	        errors += "You have not filled out the security check.\n";
	      }
	  }
	  
	  if (document.reg.termsagree.checked == false) {
		errors += "You must read and agree to the terms and conditions.\n";
	  }
	  
	  if(typeof( document.reg.img_cap ) != "undefined") {
	  	if(!clicked_image_captcha) {
		  	errors += "You have not clicked any images in the security check.\n";
	  	}
	  }
	
	  if (errors.length > 0) {
		alert(errors);
		Event.stop(e);
	  } else {
	    $('submitBtn').disabled = true;
	    document.reg.dob.value = document.reg.dob_year.value + "-" + document.reg.dob_month.value + "-" + document.reg.dob_day.value;
	    $('processing').removeClassName('hide');
		$('processing').addClassName('show');
	  }
    }
