function isEmailAddr(email)
{
  var result = false;
  var theStr = new String(email);
  var index = theStr.indexOf("@");
  if (index > 0)
  {
    var pindex = theStr.indexOf(".",index);
    if ((pindex > index+1) && (theStr.length > pindex+1))
	result = true;
  }
  return result;
}

function validRequiredReg(formField,fieldLabel)
{
	var result = true;
	if (formField.value == "")
	{
		alert('Please ' + fieldLabel +'');
		formField.focus();
		result = false;
	}
	
			if (result && document.WMRegister.regname.value.length < 3 )
	{
		alert("Please enter a proper word to register as Your Login Name");
		document.WMRegister.regname.focus();
		result = false;
	}
	
	var iChars = "!@#$%^&*()+=-[]\\\';,./{}|\":<>? ";

  for (var i = 0; i < document.WMRegister.regname.value.length; i++) {
  	if (result && iChars.indexOf(document.WMRegister.regname.value.charAt(i)) != -1) {
  	alert ("Your Login Name has special characters or spaces.\nPlease remove them and try again.");
  	result = false;
  	}
  }
  
  var iBlke = document.WMRegister.regemail.value;
	
  if(iBlke.indexOf("@o2.pl") != -1) {
   
   alert ("We cannot register o2.pl email as they do not accept our emails.\nPlease try a different email account.");
   document.WMRegister.regemail.focus();
   result = false;
  }
  
	return result;
}

function validEmail(formField,fieldLabel,required)
{
	var result = true;
	
	if (required && !validRequiredReg(formField,fieldLabel))
		result = false;

	if (result && ((formField.value.length < 3) || !isEmailAddr(formField.value)) )
	{
		alert("Please enter a valid Email Address.");
		formField.focus();
		result = false;
	}
   
  return result;

}

function validateRegForm(WMRegister)
{   
	if (!validRequiredReg(WMRegister.regname,"enter Your Login Name"))
		return false;

	if (!validEmail(WMRegister.regemail,"enter Your Email Address",true))
		return false;
	
	if (!validRequiredReg(WMRegister.regcountry,"select Your Country"))
		return false;
	
	if (!validRequiredReg(WMRegister.regstate,"select Your State"))
		return false;
	
    if (!document.WMRegister.gender[0].checked &&
       !document.WMRegister.gender[1].checked) {
	   // no radio button is selected
	   alert('Please select Your Gender');
	   return false;
       }

    if (!validRequiredReg(WMRegister.bMonth,"select Your Birth Month"))
		return false;
		
	if (!validRequiredReg(WMRegister.bDay,"select Your Birth Day"))
		return false;
		
	if (!validRequiredReg(WMRegister.bYear,"enter Your Birth Year in YYYY format"))
		return false;
		
	if (!validRequiredReg(WMRegister.nwalls,"select how many wallpapers per page would you like to show when browsing this site"))
		return false;
		
		if (
	WMRegister.policy.checked == false) 
	{
		alert ('You didn\'t read our Privacy Policy!');
		return false;
	} else { 	
		return true;
	}
return true;
}
function mailconf(WMRegister)
{   
var conf= confirm('ONLY one account is allowed for each user to be registered, so please verify your details if they are correct:\n\n - Your Username will be : '+document.WMRegister.regname.value+'\n\n - Your password will be sent to : '+document.WMRegister.regemail.value);
 if (conf== true)
 {
   return true;
 }
 else
 {
  return false;
  }
 } 
 
 
function checkNumeric(objName,minval, maxval)
{
	var numberfield = objName;
	if (chkNumeric(objName,minval,maxval) == false)
	{
		numberfield.select();
		numberfield.focus();
		return false;
	}
	else
	{
		return true;
	}
}

function chkNumeric(objName,minval,maxval)
{
var checkOK = "0123456789";
var checkStr = objName;
var allValid = true;
var decPoints = 0;
var allNum = "";

for (i = 0;  i < checkStr.value.length;  i++)
{
ch = checkStr.value.charAt(i);
for (j = 0;  j < checkOK.length;  j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length)
{
allValid = false;
break;
}
if (ch != ",")
allNum += ch;
}
if (!allValid)
{	
alertsay = "Please enter only numeric values in the Year field."
alert(alertsay);
return (false);
}

// set the minimum and maximum
var chkVal = allNum;
var prsVal = parseInt(allNum);
if (chkVal != "" && !(prsVal >= minval && prsVal <= maxval))
{
alert("Please enter a valid Birth Year, you cannot be that old or young, are you?");
document.WMRegister.bYear.value = "";
return (false);
}
check_bDate();
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}

function check_bDate(){

	var daysInMonth = DaysArray(12)

 var month=document.WMRegister.bMonth.value;
 var day=document.WMRegister.bDay.value;
 var year=document.WMRegister.bYear.value;
 
    month = month.replace(/0/,"");
	
var monthy=new Array(13);
month[0]="Whatever";
monthy[1]="January";
monthy[2]="February";
monthy[3]="March";
monthy[4]="April";
monthy[5]="May";
monthy[6]="June";
monthy[7]="July";
monthy[8]="August";
monthy[9]="September";
monthy[10]="October";
monthy[11]="November";
monthy[12]="December";

	if (month==2 && day>daysInFebruary(year)){
		alert("February " + year + " doesn`t have " + day + " days!");
		return false
	}
	if (day > daysInMonth[month]){
		alert("Month "+ monthy[month] +" doesn't have 31 days!")
		return false
	}
return true
}

function OnChangedUsername()
{
if(document.WMRegister.regname.value == "")
{
document.WMRegister.btnCheckAvailability.disabled = true;
}
else
{
document.WMRegister.btnCheckAvailability.disabled = false;
}
}

function OnCheckAvailability()
{
if(window.XMLHttpRequest)
{
oRequest = new XMLHttpRequest();
}
else if(window.ActiveXObject)
{
oRequest = new ActiveXObject("Microsoft.XMLHTTP");
}

oRequest.open("POST", "funcs/checkU.asp", true);
oRequest.onreadystatechange = UpdateCheckAvailability;

oRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
oRequest.send("strCmd=availability&strUsername=" + HtmlEncode(document.WMRegister.regname.value));
}

function HtmlEncode(str)
{
     var Html = escape(str);
     Html = Html.replace(/\//g,"%2F");
     Html = Html.replace(/\?/g,"%3F");
     Html = Html.replace(/=/g,"%3D");
     Html = Html.replace(/&/g,"%26");
     Html = Html.replace(/@/g,"%40");
     return Html;
}

function UpdateCheckAvailability()
{
if(oRequest.readyState == 4)
{ 
if(oRequest.status == 200)
{
document.getElementById("Available").innerHTML = oRequest.responseText;
}
else
{
document.getElementById("Available").innerHTML = "Error Occurred";
}
}
}