var isMz = (navigator.userAgent.indexOf("Gecko") > -1) ? true : false;
var navOver = false;
var newsIndex = 0;
var offset;
var currMenu;
var currSubMenu;

function checkEmailSyntax(email){
	regemail = new RegExp( );
	regemail.compile( '^[\._a-z0-9-]+@[\.a-z0-9-]+[\.]{1}[a-z]{2,4}$', 'gi' );
	if (!regemail.test(email))	return false;
	return true;
}

function checkEmail(email){
	if (checkEmailSyntax(email)){
		alert ("Thank you for your subscription!");
		return true;
	} else {
		alert("Please validate the input of your e-mail!");
		return false;
	}
}

function checkSignUp(obj){

	alertMsg = "The following fields are required: \n";

	if (obj.username.value.length == 0) alertMsg += "- Username\n";
	if (obj.password.value.length == 0 || obj.password.value != obj.password2.value) alertMsg += "- Password\n";
	if (obj.password2.value.length == 0 || obj.password.value != obj.password2.value) alertMsg += "- Confirm Password\n";
	if (obj.fname.value.length == 0) alertMsg += "- First Name\n";
	if (obj.lname.value.length == 0) alertMsg += "- Last Name\n";
	if (!checkEmailSyntax(obj.email.value)) alertMsg += "- E-mail\n";
	if (obj.company.value.length == 0) alertMsg += "- Company\n";
	if (obj.phone.value.length == 0) alertMsg += "- Phone number\n";

	if (alertMsg == "The following fields are required: \n")
		return true;
	else
		alert(alertMsg)

	return false;
}

function checkEdit(obj){

	alertMsg = "The following fields are required: \n";

	//if (obj.oldpass.value.length == 0) alertMsg += "- Old Password\n";
	if (obj.password.value != obj.password2.value) alertMsg += "- Password\n- Confirm Password\n";
	if (obj.fname.value.length == 0) alertMsg += "- First Name\n";
	if (obj.lname.value.length == 0) alertMsg += "- Last Name\n";
	if (!checkEmailSyntax(obj.email.value)) alertMsg += "- E-mail\n";
	if (obj.company.value.length == 0) alertMsg += "- Company\n";
	if (obj.phone.value.length == 0) alertMsg += "- Phone number\n";

	if (alertMsg == "The following fields are required: \n")
		return true;
	else
		alert(alertMsg)

	return false;
}

function checkDocs(obj){

	alertMsg = "The following fields are required: \n";

	if (obj.fname.value.length == 0) alertMsg += "- First Name\n";
	if (obj.lname.value.length == 0) alertMsg += "- Last Name\n";
	if (!checkEmailSyntax(obj.email.value)) alertMsg += "- E-mail\n";
	if (obj.company.value.length == 0) alertMsg += "- Company\n";
	if (obj.title.value.length == 0) alertMsg += "- Title\n";
	if (obj.country.value.length == 0) alertMsg += "- Country\n";
	if (obj.state.value.length == 0) alertMsg += "- State\n";
	if (obj.city.value.length == 0) alertMsg += "- City\n";
	if (obj.zipcode.value.length == 0) alertMsg += "- Zip code\n";

	if (alertMsg == "The following fields are required: \n")
		return true;
	else
		alert(alertMsg)

	return false;
}


function checkDownloads(obj){

	alertMsg = "The following fields are required: \n";

	if (obj.firstName.value.length == 0) alertMsg += "- First Name\n";
	if (obj.lastName.value.length == 0) alertMsg += "- Last Name\n";
	if (!checkEmailSyntax(obj.email.value)) alertMsg += "- E-mail\n";
	if (obj.company.value.length == 0) alertMsg += "- Company\n";
	if (obj.phone.value.length == 0) alertMsg += "- Phone\n";
    if(!("IBMDEMO"==obj.device.value || "NOKIA"==obj.device.value))
    {
            if (!("WMPSERVER"==obj.device.value)&&obj.deviceName.value.length == 0) alertMsg += "- Device\n";
            if (!("WMPSERVER"==obj.device.value)&&obj.carrier.value.length == 0) alertMsg += "- Carrier\n";
            if (obj.device.value == 'RIM') {
                if (obj.bes.value.length != 0 && obj.mailType.value.length == 0) alertMsg += "- BES Server\n- E-Mail Account Type";
            }
    }
    else
    {
            if (!obj.agreementYes.checked) alertMsg += "In order to receive this promotion you should agree with our Terms and Conditions (see #14).\n";
    }
	if (alertMsg == "The following fields are required: \n")
		return true;
	else
		alert(alertMsg)

	return false;
}
function checkUpdates(obj){

	alertMsg = "The following fields are required: \n";

	if (obj.firstName.value.length == 0) alertMsg += "- First Name\n";
	if (obj.lastName.value.length == 0) alertMsg += "- Last Name\n";
	if (obj.email.value.length==0||!checkEmailSyntax(obj.email.value)) alertMsg += "- E-mail\n";
	if (alertMsg == "The following fields are required: \n")
		return true;
	else
		alert(alertMsg)
	return false;
}

function checkNameEmail(obj){

	alertMsg = "The following fields are required: \n";

	if (obj.firstName.value.length == 0) alertMsg += "- First Name\n";
	if (obj.lastName.value.length == 0) alertMsg += "- Last Name\n";
	if (!checkEmailSyntax(obj.email.value)) alertMsg += "- E-mail\n";
	if (alertMsg == "The following fields are required: \n")
		return true;
	else
		alert(alertMsg)

	return false;
}

// Form Field Validation Functions:
//
// isValidExpDate(formField,fieldLabel,required)
//   -- checks for date in the format MM/YY or MM/YYYY against the current date
// isValidCreditCardNumber(formField,ccType,fieldLabel,required)
//   -- checks for valid credit card format using the Luhn check and known digits about various cards
//

function validRequired(formField,fieldLabel)
{
	var result = true;

	if (formField.value == "")
	{
		alert('Please enter a value for the "' + fieldLabel +'" field.');
		formField.focus();
		result = false;
	}

	return result;
}

function checkStanchoTry(obj)
{
	alertMsg = "The following fields are required: \n";	
	if (!checkEmailSyntax(obj.email.value)) alertMsg += "- E-Mail\n";
	if (alertMsg == "The following fields are required: \n") {
		return true;
	}
	else
		alert(alertMsg)

	return false;
}

function allDigits(str)
{
	return inValidCharSet(str,"0123456789");
}

function inValidCharSet(str,charset)
{
	var result = true;

	for (var i=0;i<str.length;i++)
		if (charset.indexOf(str.substr(i,1))<0)
		{
			result = false;
			break;
		}

	return result;
}

function isValidExpDate(formField,fieldLabel,required)
{
	var result = true;
	var formValue = formField.value;

	if (required && !validRequired(formField,fieldLabel))
		result = false;

 	if (result && (formField.value.length>0))
 	{
 		var elems = formValue.split("/");

 		result = (elems.length == 2); // should be two components
 		var expired = false;

 		if (result)
 		{
 			var month = parseInt(elems[0],10);
 			var year = parseInt(elems[1],10);

 			if (elems[1].length == 2)
 				year += 2000;

 			var now = new Date();

 			var nowMonth = now.getMonth() + 1;
 			var nowYear = now.getFullYear();

 			expired = (nowYear > year) || ((nowYear == year ) && (nowMonth > month));

			result = allDigits(elems[0]) && (month > 0) && (month < 13) &&
					 allDigits(elems[1]) && ((elems[1].length == 2) || (elems[1].length == 4));
 		}

  		if (!result)
 		{
 			alert('Please enter a date in the format MM/YY for the "' + fieldLabel +'" field.');
			formField.focus();
		}
		else if (expired)
		{
 			result = false;
 			alert('The date for "' + fieldLabel +'" has expired.');
			formField.focus();
		}
	}

	return result;
}

function isValidCreditCardNumber(formField,ccType,fieldLabel,required)
{
	var result = true;
 	var ccNum = formField.value;

	if (required && !validRequired(formField,fieldLabel))
		result = false;

  	if (result && (formField.value.length>0))
 	{
 		if (!allDigits(ccNum))
 		{
 			alert('Please enter only numbers (no dashes or spaces) for the "' + fieldLabel +'" field.');
			formField.focus();
			result = false;
		}

		if (result)
 		{

 			if (!LuhnCheck(ccNum) || !validateCCNum(ccType,ccNum))
 			{
 				alert('Please enter a valid card number for the "' + fieldLabel +'" field.');
				formField.focus();
				result = false;
			}
		}

	}

	return result;
}

function LuhnCheck(str)
{
  var result = true;

  var sum = 0;
  var mul = 1;
  var strLen = str.length;

  for (i = 0; i < strLen; i++)
  {
    var digit = str.substring(strLen-i-1,strLen-i);
    var tproduct = parseInt(digit ,10)*mul;
    if (tproduct >= 10)
      sum += (tproduct % 10) + 1;
    else
      sum += tproduct;
    if (mul == 1)
      mul++;
    else
      mul--;
  }
  if ((sum % 10) != 0)
    result = false;

  return result;
}



function GetRadioValue(rArray)
{
	for (var i=0;i<rArray.length;i++)
	{
		if (rArray[i].checked)
			return rArray[i].value;
	}

	return null;
}


function validateCCNum(cardType,cardNum)
{
	var result = false;
	cardType = cardType.toUpperCase();

	var cardLen = cardNum.length;
	var firstdig = cardNum.substring(0,1);
	var seconddig = cardNum.substring(1,2);
	var first4digs = cardNum.substring(0,4);

	switch (cardType)
	{
		case "VISA":
			result = ((cardLen == 16) || (cardLen == 13)) && (firstdig == "4");
			break;
		case "AMEX":
			var validNums = "47";
			result = (cardLen == 15) && (firstdig == "3") && (validNums.indexOf(seconddig)>=0);
			break;
		case "MASTERCARD":
			var validNums = "12345";
			result = (cardLen == 16) && (firstdig == "5") && (validNums.indexOf(seconddig)>=0);
			break;
		case "DISCOVER":
			result = (cardLen == 16) && (first4digs == "6011");
			break;
		case "DINERS":
			var validNums = "068";
			result = (cardLen == 14) && (firstdig == "3") && (validNums.indexOf(seconddig)>=0);
			break;
	}
	return result;
}

function validCCForm(ccTypeField,ccNumField,ccExpField)
{
	var result = isValidCreditCardNumber(ccNumField,ccTypeField.value,"Credit Card Number",true) &&
		isValidExpDate(ccExpField,"Expiration Date",true);
	return result;
}

function checkBuy(obj){

	alertMsg = "The following fields are required: \n";

	if (obj.cardnumber.value.length == 0) alertMsg += "- Credit Card Number\n";
	if (obj.expmonth.value == 0) alertMsg += "- Expiration Date - Month\n";
	if (obj.expyear.value == 0) alertMsg += "- Expiration Date - Year\n";

	if (obj.firstname.value.length == 0) alertMsg += "- First Name\n";
	if (obj.lastname.value.length == 0) alertMsg += "- Last Name\n";
	if (obj.addressline1.value.length == 0) alertMsg += "- Address Line 1\n";
	if (obj.city.value.length == 0) alertMsg += "- City\n";
	if ((obj.stateprovince.value.length == 0) && ((obj.country.value=="ca") || (obj.country.value=="us"))) alertMsg += "- State/Province\n";
	if (obj.postalcode.value.length == 0) alertMsg += "- Postal Code\n";
	if (!checkEmailSyntax(obj.email.value)) alertMsg += "- E-mail\n";
	if (obj.email.value != obj.emailconfirm.value) alertMsg += "- E-mails not equals\n";

	if (alertMsg == "The following fields are required: \n") {
			return true;
	}
	else
		alert(alertMsg)

	return false;
}

function checkAccountCardInfo (obj)
{
	alertMsg = "The following fields are required: \n";
	if(obj.phone.value.length == 0)
		alertMsg += "- Phone Number\n";
	if(obj.email.value.length == 0)
		alertMsg += "- E-Mail\n";
	if(obj.emailconfirm.value.length == 0)
		alertMsg += "- E-Mail Confirmation\n";
	if(obj.password1.value.length == 0)
		alertMsg += "- Password\n";
	if(obj.password_next.value.length == 0)
		alertMsg += "- Password Confirmation\n";
	
	if (alertMsg != "The following fields are required: \n") 
	{
		alert(alertMsg);
		return false;
	}

	alertMsg = "The following fields should be identical: \n";

	if(obj.email.value != obj.emailconfirm.value)
		alertMsg += "- E-Mail & E-Mail Confirmation\n";
	if(obj.password1.value != obj.password_next.value)
		alertMsg += "- Password & Password Confirmation\n";

	if (alertMsg != "The following fields should be identical: \n") 
	{
		alert(alertMsg);
		return false;
	}
	
	/*
	alertMsg = "The following fields should be valid e-mail address: \n";
	if (!checkEmailSyntax(obj.devicepid.value)) alertMsg += "- IM User Account ID No 1\n";
	if (alertMsg != "The following fields should be valid e-mail address: \n") 
	{
		alert(alertMsg);
		return false;
	}
	*/

	return true;
/*
	if (obj.email.value.length == 0 || obj.email.value != obj.emailconfirm.value) alertMsg += "- e-mail\n";
	if (obj.emailconfirm.value.length == 0 || obj.email.value != obj.emailconfirm.value) alertMsg += "- Confirm e-mail\n";
	if (obj.phone.value.length == 0) alertMsg += "- Credit Phone\n";
	if (!checkEmailSyntax(obj.email.value)) alertMsg += "- E-mail 2\n";
	//if (!checkEmailSyntax(obj.email)) alertMsg += "- E-mail 3\n";
	if (alertMsg == "The following fields are required: \n") 
	{
			return true;
	}
	else
		alert(alertMsg)
	return false;*/
}
function checkBuyCardInfo(obj){

	alertMsg = "The following fields are required: \n";

	if (obj.cardnumber.value.length == 0) alertMsg += "- Credit Card Number\n";
	if (obj.expmonth.value == 0) alertMsg += "- Expiration Date - Month\n";
	if (obj.expyear.value == 0) alertMsg += "- Expiration Date - Year\n";

	if (obj.firstname.value.length == 0) alertMsg += "- First Name\n";
	if (obj.lastname.value.length == 0) alertMsg += "- Last Name\n";
	if (obj.addressline1.value.length == 0) alertMsg += "- Address Line 1\n";
	if (obj.city.value.length == 0) alertMsg += "- City\n";
	if ((obj.stateprovince.value.length == 0) && ((obj.country.value=="ca") || (obj.country.value=="us"))) alertMsg += "- State/Province\n";
	if (obj.postalcode.value.length == 0) alertMsg += "- Postal Code\n";
	
	if (alertMsg == "The following fields are required: \n") {
			return true;
	}
	else
		alert(alertMsg)

	return false;
}
