function onFormError(error_message)
{
	alert(error_message);
  	return false;	
}

function hasValue(obj, obj_type)
{
    if (obj_type == "TEXT" || obj_type == "PASSWORD")
	{
    	if (obj.value.length == 0) 
      		return false;
    	else 
      		return true;
    }
    else if (obj_type == "SELECT")
	{
        for (i=0; i < obj.length; i++)
	    {
			if (obj.options[i].selected)
			{
			return i;
			}
		}
       	return false;	
	}
	else if (obj_type == "MULTISELECT")
	{
        for (i=0; i < obj.length; i++)
	    {
			if (obj.options[i].selected)
			{
			return true;
			}
		}
       	return false;	
	}
    else if (obj_type == "SINGLE_VALUE_RADIO" || obj_type == "SINGLE_VALUE_CHECKBOX")
	{
		if (obj.checked)
			return true;
		else
       		return false;	
	}
    else if (obj_type == "RADIO" || obj_type == "CHECKBOX")
	{

        for (i=0; i < obj.length; i++)
	    	{
		if (obj[i].checked)
			return true;
		}

       	return false;	
	}
}


function checkInteger(object_value)
{
	return parseInt(object_value);   
}

function checkNumber(object_value)
    {
    //Returns true if value is a number or is NULL
    //otherwise returns false	

    if (object_value.length == 0)
        return true;

    //Returns true if value is a number defined as
    //   having an optional leading + or -.
    //   having at most 1 decimal point.
    //   otherwise containing only the characters 0-9.
	var start_format = " .+-0123456789()";
	var number_format = " .0123456789()";
	var check_char;
	var decimal = false;
	var trailing_blank = false;
	var digits = false;

    //The first character can be + - .  blank or a digit.
	check_char = start_format.indexOf(object_value.charAt(0))
    //Was it a decimal?
	if (check_char == 1)
	    decimal = true;
	else if (check_char < 1)
		return false;
        
	//Remaining characters can be only . or a digit, but only one decimal.
	for (var i = 1; i < object_value.length; i++)
	{
		check_char = number_format.indexOf(object_value.charAt(i))
		if (check_char < 0)
			return false;
		else if (check_char == 1)
		{
			if (decimal)		// Second decimal.
				return false;
			else
				decimal = true;
		}
		else if (check_char == 0)
		{
			if (decimal || digits)	
				trailing_blank = true;
        // ignore leading blanks

		}
	        else if (trailing_blank)
			return false;
		else
			digits = true;
	}	
    //All tests passed, so...
    return true;
}

function HasInvalids(value) {
	invalids = '!@#$%^&*()+=<>,?/\\\':;{}[]';
	for (var i = 0; i < value.length; i++) {
		if (invalids.indexOf(value.substr(i,1)) != -1) {
		 return true;
		}
	}
	return false;
}

function HasInvalidss(value) {
	invalids = ' !@#$%^&*()+=<>,?/\\\':;{}[]';
	for (var i = 0; i < value.length; i++) {
		if (invalids.indexOf(value.substr(i,1)) != -1) {
		 return true;
		}
	}
	return false;
}

function HasInvalidsss(value) {
	invalids = ' !@#$%^&*()+=<>,?/\\\':;{}[]ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
	for (var i = 0; i < value.length; i++) {
		if (invalids.indexOf(value.substr(i,1)) != -1) {
		 return true;
		}
	}
	return false;
}

function HasInvalidsForEmails(value) {
	invalids = ' !#$%^&*()+=<>,?/\\\':;{}[]';
	for (var i = 0; i < value.length; i++) {
		if (invalids.indexOf(value.substr(i,1)) != -1) {
		 return true;
		}
	}	

	return false;
}

function checkEmail(object_value)
{	

	if (HasInvalidsForEmails(object_value)){
		return false; 
	}else if  (object_value.indexOf("@") == -1) {		
		return false; 
  	}else if(object_value.indexOf("@") == 0) {
		return false; 
	}else if  (object_value.indexOf("@") == object_value.length-1) {    	
		return false; 
  	}else if  (object_value.indexOf(".") == -1) {    	
		return false; 
  	}else if  (object_value.indexOf(".") == object_value.indexOf("@") + 1) {    	
		return false; 
	}else if  (object_value.indexOf("@") == object_value.indexOf(".") + 1) {    	
		return false; 
  	}else if  (object_value.indexOf(".") == object_value.length-1) {    	
		return false; 
  	}		
			
	//All tests passed, so...
    	return true;
}

function checkZip(object_value)
{
	if (object_value.length == 0)
		return true;
    
    // Encoding only works on zip codes with ONLY 5 digits, comment 2 following 2 lines to escape...
	if (object_value.length != 5)
	    return false;

	// make sure first 5 digits are a valid integer
	if (object_value.charAt(0) == "-" || object_value.charAt(0) == "+")
		return false;

	if (!checkInteger(object_value.substring(0,5)))
		return false;

	if (object_value.length == 9)
		return true;
		
	if (object_value.length == 5)
		return true;
		
		
	// make sure
	
	// check if separator is either a'-' or ' '
	if (object_value.charAt(5) != "-" && object_value.charAt(5) != " ")
		return false;

	// check if last 4 digits are a valid integer
	if (object_value.charAt(6) == "-" || object_value.charAt(6) == "+")
		return false;

    //All tests passed, so...
    	return true;
}

function checkPhone(object_value)
{
	//if (object_value.length <= 7)
	//return false;

	if (object_value.length >= 20)
	return false;

	// check if first 3 characters represent a valid area code
	if (!checkNumber(object_value.substring(0,3)))
		return false;
		
	//All tests passed, so...
    return true;
}

function isCreditCard(st) 
{
  // Encoding only works on cards with less than 19 digits
  if (st.length > 19)
    return (false);

  sum = 0; mul = 1; l = st.length;
  for (i = 0; i < l; i++) {
    digit = st.substring(l-i-1,l-i);
    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)
    return (true);
  else
    return (false);
}


function checkCreditCard2(object_value)
    {
	var white_space = " -";
	var creditcard_string="";
	var check_char;
    
    if (HasInvalids(object_value))
		return false; 	

	// squish out the white space
	for (var i = 0; i < object_value.length; i++)
	{
		check_char = white_space.indexOf(object_value.charAt(i))
		if (check_char < 0)
			creditcard_string += object_value.substring(i, (i + 1));
	}	

	// if all white space return error
    if (creditcard_string.length == 0)
        return false;
	 
	 	
	// make sure number is a valid integer
	if (creditcard_string.charAt(0) == "+")
        return false;

	if (!checkInteger(creditcard_string))
		return false;

    // now check mod10

	var doubledigit = creditcard_string.length % 2 == 1 ? false : true;
	var checkdigit = 0;
	var tempdigit;

	for (var i = 0; i < creditcard_string.length; i++)
	{
		tempdigit = eval(creditcard_string.charAt(i))

		if (doubledigit)
		{
			tempdigit *= 2;
			checkdigit += (tempdigit % 10);

			if ((tempdigit / 10) >= 1.0)
			{
				checkdigit++;
			}

			doubledigit = false;
		}
		else
		{
			checkdigit += tempdigit;
			doubledigit = true;
		}
	}	
	return (checkdigit % 10) == 0 ? true : false;

    }
	
function checkcreditcard1(object_value){
	
	if (object_value.length == 0)
        return false;
	
	if (object_value.length > 19)
        return false;
	
	if (HasInvalidsss(object_value))
		return false; 	
	
	if (!((object_value.charAt(4)=="-") && (object_value.charAt(9)=="-") && (object_value.charAt(14)=="-")))	
		return false; 	
	
	return true;
}

//updated on 28th Dec, 2006
function checkCreditCard(strCatrdType, object_value)
{
    var strValidString = "0123456789-"; // credid card number can only hold numbers and seperators as "-"
    
    for (var j=0; j<object_value.length; j++)
    {
	    temp=object_value.substring(j,j+1)
	    if (strValidString.indexOf(temp)==-1)
	    {
	        return false;
	    }
    }
	    
    if (strCatrdType.toLowerCase() == 'amex') // validates seperators possitions for AMEX...
    {
        if ((!(object_value.charAt(4)=="-")) || (!(object_value.charAt(11)=="-")))
        {
            return false;
        }			
    }
    else // validates seperators possitions for other cards...
    {   
        if (!((object_value.charAt(4)=="-") && (object_value.charAt(9)=="-") && (object_value.charAt(14)=="-")))	
        {
            return false;
        }
    }
    
    return true;
}

//added on 28th Dec, 2006
function checkCardVerifyCode(strCatrdType, object_value)
{
    if (!checkInteger(object_value))
    {
        return false;
    }
    
    if (strCatrdType.toLowerCase() == 'amex')
    {
        if (object_value.length != 4)
            return false;
    }
    else
    {
        if (object_value.length != 3)
            return false;
    }
    
    return true;
}


function ConfirmDialog(strMessage)
{
	if (confirm (strMessage))
	{
		return true;
	}
	return false;
}

function checkValueLength(object_value, minLength)
{
	if (object_value.length < minLength)
		return false;
	else
		return true;
}

function matchTwoValues(object_value1, object_value2)
{
	if (object_value1 !== object_value2)
		return false;
	else
		return true;
}

function checkCurrency(object_value)
{
	var digits="0123456789.$,";
	for (var j=0; j<object_value.length; j++)
	{
		temp=object_value.substring(j,j+1)
		if (digits.indexOf(temp)==-1)
			return false;
	}
	return true;
}

/*
function checkUserName(object_value)
{
    var invalid_digits="`-=[]\;',./~!@#$%^&*()+{}|:<>?";
	for (var j=0; j<object_value.length; j++)
	{
		temp=object_value.substring(j,j+1);
		if (invalid_digits.indexOf(temp) >= 0)
			return false;
	}
	return true;
}
*/

function checkUserName(object_value)
{
    var matches = object_value.match(/[^a-zA-Z0-9_]/);
    
    if(matches != null && matches.length > 0)
        return false;
    else
        return true;    
}

function checkPassword(object_value)
{
    var invalid_digits="`-=[]\;',./~!@#$%^&*()+{}|:<>?";
	for (var j=0; j<object_value.length; j++)
	{
		temp=object_value.substring(j,j+1);
		if (invalid_digits.indexOf(temp) >= 0)
			return false;
	}
	return true;
}

function IsAlpha(val)
{
    var RegExp = /^([a-zA-Z])$/;
    return (RegExp.test(val));
}
        
function validatePassword(object_value)
{
    var blnCapitalAlphabet = false;
    var blnSmallAlphabet = false;
    var blnNumericCharactor = false;
    var digits="0123456789";
    
	for (var j=0; j<object_value.length; j++)
	{
		temp=object_value.substring(j,j+1);
		
		if (IsAlpha(temp))
		{
		    if (temp == temp.toUpperCase())
		        blnCapitalAlphabet = true;
		    if (temp == temp.toLowerCase())
		        blnSmallAlphabet = true;
		}
				
		if (digits.indexOf(temp) >= 0)
			blnNumericCharactor = true;
	}
	
	if ((!blnCapitalAlphabet) || (!blnSmallAlphabet) || (!blnNumericCharactor))
	    return false;
	else
	    return true;
}
/*
function OpenWin(strURL, strWinName, strParam)
{
	mywindow = window.open(strURL, strWinName, strParam);
    mywindow.moveTo((screen.width/2),(screen.height/2)-250)
    alert(mywindow.width);
    
}
*/

function OpenWin(strURL, intWidth, intHeight)
{
    var intScreenWidth = screen.width;
    var intScreenHeight = screen.height;
    var intWindowXPos = (intScreenWidth/2)-(intWidth/2);
    var intWindowYPos = (intScreenHeight/2)-((intHeight/2)+20);
    
    mywindow = window.open(strURL, 'ModelWindow', 'width=' + intWidth + ',height=' + intHeight + ',scrollbars=yes,status=no');
    mywindow.moveTo(intWindowXPos, intWindowYPos);
}

function formatCurrency(objObject)
{
	var num = objObject.value;
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
	num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
	cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+','+
	num.substring(num.length-(4*i+3));
	objObject.value = (((sign)?'':'-') + '$' + num + '.' + cents);
	//return (((sign)?'':'-') + '$' + num + '.' + cents);
}

function ConvertIntoCM(intvalue, objObject)
{
	var intCentimeter = (intvalue * 2.54);
	objObject.value = intCentimeter;
}

function ConvertIntoInch(intvalue, objObject)
{
	var intInch = (intvalue / 2.54);
	objObject.value = intInch;
}

function ConfirmClick(strAnchor)
{
    if (ConfirmDialog("ArrestLeads member registration has not completed.\n\nDo you want to leave from registration wizard?"))
    {
        window.location.href = strAnchor;
    }
    else
    {
         window.location.href='#';
    }
}

function SetPageAnchors()
{
    var anchors = document.getElementsByTagName("a");
    for (i=0; i<anchors.length; i++)
    {
        var anchor = anchors[i];
        var anchorhref = anchor.getAttribute("href");
        
        if ((anchorhref.indexOf("Signup") == -1) && (anchorhref.indexOf("UserAgreement.htm") == -1))
        {
            anchor.href = "javascript:ConfirmClick('" + anchorhref + "');"
        }
    }
}

function SetImagesPath()
{
    var images = document.getElementsByTagName("img");
    for (i=0; i<images.length; i++)
    {
        var image = images[i];
        var imagesrc = image.getAttribute("src");
        alert(imagesrc.replace('http://', 'https://'));
    }
}

function CheckCardExpireeDate(month, year)
{
    var currentdate = new Date();
    var currentyear = currentdate.getYear();
    var currentmonth = currentdate.getMonth() + 1;
    
    if (year == currentyear && month < currentmonth)
    {
        return false;
    }
    else
    {
        return true;
    }
}

function FormatDate(objDate)
{
    var Day  = objDate.getDate();
    var Day = (Day < 10) ? '0' + Day : Day;
    
    var Month = objDate.getMonth() + 1;
    var Month = (Month < 10) ? '0' + Month : Month;
    
    var Year = objDate.getYear();
    var Year = (Year < 1000) ? Year + 1900 : Year;

    return (Month + "/" + Day + "/" + Year);
}

function RoundNumber(dblNumber) 
{
	var rlength = 2; // The number of decimal places to round to
	if (dblNumber > 8191 && dblNumber < 10485) 
	{
		dblNumber = dblNumber-5000;
		var newnumber = Math.round(dblNumber*Math.pow(10,rlength))/Math.pow(10,rlength);
		newnumber = newnumber+5000;
	} 
	else 
	{
		var newnumber = Math.round(dblNumber*Math.pow(10,rlength))/Math.pow(10,rlength);
	}
	
	return newnumber;
}

function SetAnchorsToHttps()
{
    var aryPages = new Array(6);
    aryPages[0] = 'ForgotPassword.aspx';
    aryPages[1] = 'Splash.aspx';
    aryPages[2] = 'AccountProfile.aspx';
    aryPages[3] = 'BillingProfile.aspx';
    aryPages[4] = 'Subscription.aspx';
    aryPages[5] = 'ChangePassword.aspx';
    
    var anchors = document.getElementsByTagName("a");
    
    for (i=0; i<anchors.length; i++)
    {
        var anchor = anchors[i];
        var anchorhref = anchor.getAttribute("href");
        var blnDoSecure = false;
        
        for (var intX=0; intX<6; intX++)
        { 
            if (anchorhref.indexOf(aryPages[intX]) != -1)
            {
                blnDoSecure = true;
            }
        }
        
        if (blnDoSecure)
        {
            anchor.href = anchorhref.replace('http://', 'https://')
        }
    }
}

function SetAnchorsToHttp()
{
    var aryPages = new Array(6);
    aryPages[0] = 'ForgotPassword.aspx';
    aryPages[1] = 'Splash.aspx';
    aryPages[2] = 'AccountProfile.aspx';
    aryPages[3] = 'BillingProfile.aspx';
    aryPages[4] = 'Subscription.aspx';
    aryPages[5] = 'ChangePassword.aspx';
    
    var anchors = document.getElementsByTagName("a");
    
    for (i=0; i<anchors.length; i++)
    {
        var anchor = anchors[i];
        var anchorhref = anchor.getAttribute("href");
        var blnSecureFound = false;
        
        for (var intX=0; intX<6; intX++)
        { 
            if (anchorhref.indexOf(aryPages[intX]) != -1)
            {
                blnSecureFound = true;
            }
        }
        
        if (blnSecureFound == false)
        {
            if (anchorhref.indexOf('https://') != -1)
            {
                anchor.href = anchorhref.replace('https://', 'http://');
            }           
        }
    }
}