function js_change_per_page(param)
{
	o = document.getElementById('per_page').value;
	if (param.indexOf('?') != -1)
		document.location = param + '&per_page=' + o;
	else
		document.location = param + '?per_page=' + o;
		
}
// Example:

// alert( readCookie("myCookie") );

function readCookie(name)
{

  var cookieValue = "";

  var search = name + "=";

  if(document.cookie.length > 0)

  { 

    offset = document.cookie.indexOf(search);

    if (offset != -1)

    { 

      offset += search.length;

      end = document.cookie.indexOf(";", offset);

      if (end == -1) end = document.cookie.length;

      cookieValue = unescape(document.cookie.substring(offset, end))

    }

  }

  return cookieValue;

}

// Example:

// writeCookie("myCookie", "my name", 24);

// Stores the string "my name" in the cookie "myCookie" which expires after 24 hours.

function writeCookie(name, value, hours)
{

  var expire = "";

  if(hours != null)

  {

    expire = new Date((new Date()).getTime() + hours * 3600000);

    expire = "; expires=" + expire.toGMTString();

  }

  document.cookie = name + "=" + escape(value) + expire;

}


function js_save_pass()
{
	var ck = document.getElementById('save_pass').checked;
	
	if (ck)
	{
		writeCookie('savepass', '1', 240);
		p = document.getElementById('ui_pass').value;
		u = document.getElementById('ui_name').value;
		writeCookie('passwordcache', p, 240);
		writeCookie('usernamecache', u, 240);
		
	}
	else
	{
		writeCookie('savepass', '0', 240);
		writeCookie('passwordcache', '', 240);
		writeCookie('usernamecache', '', 240);
	}
	
}

function js_verify_ccard(cardNumber, cardType)
{
  var isValid = false;
  var ccCheckRegExp = /[^\d ]/;
  isValid = !ccCheckRegExp.test(cardNumber);

  if (isValid)
  {
    var cardNumbersOnly = cardNumber.replace(/ /g,"");
    var cardNumberLength = cardNumbersOnly.length;
    var lengthIsValid = false;
    var prefixIsValid = false;
    var prefixRegExp;

    switch(cardType)
    {
      case "mastercard":
        lengthIsValid = (cardNumberLength == 16);
        prefixRegExp = /^5[1-5]/;
		prefixIsValid = prefixRegExp.test(cardNumbersOnly);
		break;

      case "visa":
        lengthIsValid = (cardNumberLength == 16 || cardNumberLength == 13);
        prefixRegExp = /^4/;
		prefixIsValid = prefixRegExp.test(cardNumbersOnly);
        break;

      case "amex":
        lengthIsValid = (cardNumberLength == 15);
        prefixRegExp = /^3(4|7)/;
		prefixIsValid = prefixRegExp.test(cardNumbersOnly);
        break;

      case "discover":
	  //lengthIsValid = true;
		prefixIsValid = true;
        lengthIsValid = (cardNumberLength == 16);
        //prefixRegExp = /^$/;
        break;

      default:
        //prefixRegExp = /^$/;
        //alert("Card type not found");
    }

    isValid = prefixIsValid && lengthIsValid;
  }

  if (isValid)
  {
    var numberProduct;
    var numberProductDigitIndex;
    var checkSumTotal = 0;

    for (digitCounter = cardNumberLength - 1; 
      digitCounter >= 0; 
      digitCounter--)
    {
      checkSumTotal += parseInt (cardNumbersOnly.charAt(digitCounter));
      digitCounter--;
      numberProduct = String((cardNumbersOnly.charAt(digitCounter) * 2));
      for (var productDigitCounter = 0;
        productDigitCounter < numberProduct.length; 
        productDigitCounter++)
      {
        checkSumTotal += 
          parseInt(numberProduct.charAt(productDigitCounter));
      }
    }

    isValid = (checkSumTotal % 10 == 0);
  }

  return isValid;
}

function togglesubmit(theform, turnon)
{
	if (document.all||document.getElementById)
	{
		for (i=0;i<theform.length;i++)
		{
			var tempobj=theform.elements[i]
			if(tempobj.type.toLowerCase()=="submit")
			{
				//alert("GOT HERE");
				if (turnon)
					tempobj.disabled=false;
				else
					tempobj.disabled=true;
			}
		}
	}
}


function formCheck(formobj, fieldRequired, fieldDescription)
{
	// Enter name of mandatory fields
//	var fieldRequired = Array("FirstName", "LastName");
	// Enter field description to appear in the dialog box
//	var fieldDescription = Array("First Name", "Last Name");
	// dialog message
	var alertMsg = "Please complete the following fields:\n";
	var l_Msg = alertMsg.length;
	
	for (var i = 0; i < fieldRequired.length; i++){
		var obj = formobj.elements[fieldRequired[i]];
		if (obj){
			switch(obj.type){
			case "select-one":
				if (obj.selectedIndex == -1 || obj.options[obj.selectedIndex].text == "" || obj.options[obj.selectedIndex].value == "_invalid_" )
				{
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;
			case "select-multiple":
				if (obj.selectedIndex == -1){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;
			case "text":
			case "password":
			case "textarea":
				if (obj.value == "" || obj.value == null){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;
			default:
			}
			if (obj.type == undefined){
				var blnchecked = false;
				for (var j = 0; j < obj.length; j++){
					if (obj[j].checked){
						blnchecked = true;
					}
				}
				if (!blnchecked){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
			}
		}
	}

	if (alertMsg.length == l_Msg){
		return true;
	}else{
		alert(alertMsg);
		return false;
	}
}

function emailcheck(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   alert("Invalid E-mail ID")
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   alert("Invalid E-mail ID")
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    alert("Invalid E-mail ID")
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    alert("Invalid E-mail ID")
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    alert("Invalid E-mail ID")
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    alert("Invalid E-mail ID")
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    alert("Invalid E-mail ID")
		    return false
		 }

 		 return true					
	}

//-------------------------------------------------------
// Check box routines begin
//-------------------------------------------------------
// form must have 1 checkbox name "allbox"
// form must have 2 hidden variable "total_lines" and "checked_lines"
// for the following 7 functions, check box list controls


// check box tricger
// @param CB object checkbox
function CCA(CB)
{
	var frm = CB.form;
	if (CB.checked)
	{
		//hL(CB);
		frm.checked_lines.value++;
	}	
	else
	{
		//dL(CB);
		frm.checked_lines.value--;
	}
	if (frm.checked_lines.value==frm.total_lines.value)
		frm.allbox.checked=true;
	else
		frm.allbox.checked=false;
}
// internal function to highlight the selected row
function hL(E)
{
	if (ie)
	{
		while (E.tagName!="TR")
		{E=E.parentElement;}
	}
	else
	{
		while (E.tagName!="TR")
		{E=E.parentNode;}
	}
	E.className = "H";
}
// internal function to de-highlight the selected row
function dL(E)
{
	if (ie)
	{
		while (E.tagName!="TR")
		{E=E.parentElement;}
	}
	else
	{
		while (E.tagName!="TR")
		{E=E.parentNode;}
	}
	E.className = "";
}
// all checkbox trigger
// @param frm object form
function CA(isOnload, frm)
{
	for (i=0;i<frm.elements.length;i++)
	{
		var e = frm.elements[i];
		if ((e.name != 'allbox') && (e.type=='checkbox'))
		{
			if (isOnload != 1)
			{
				e.checked = frm.allbox.checked;
				if (frm.allbox.checked)
				{
					hL(e);
					frm.checked_lines.value++;
				}
				else
				{
					dL(e);
					frm.checked_lines.value--;
				}
			}
			else
			{
				if (e.checked)
				{
					hL(e);
					frm.checked_lines.value++;
				}
				else
				{
					dL(e);
					frm.checked_lines.value--;
				}
			}
		}
	}
}
// internal function to count totoal checkboxes
function totalCheckBox(frm)
{
	j=0;
	for(i=0;i< frm.length; i++)
	{
		e=frm.elements[i];
		if (e.type=='checkbox' && e.name != 'allbox')
			j++;
	}
	return j;
}
// internal function to count totoal checkboxes that has been checked.
function numChecked(frm)
{
	j=0;
	for(i=0;i< frm.length;i++)
	{
		e=frm.elements[i];
		if (e.type=='checkbox' && e.name != 'allbox' && e.checked)
			j++;
	}
	return j;
}
// function to initialized the from. 
// Must be called after the </form> in the HTML
function initCB(frm)
{
	//frm.elements["total_lines"].value =totalCheckBox() ;
	//frm.elements["checked_lines"].value = numChecked();
	var objTotal = document.createElement("INPUT");
   objTotal.setAttribute("type", "hidden");
   objTotal.setAttribute("name", "total_lines");
   objTotal.setAttribute("id", "total_lines");
   objTotal.setAttribute("value", totalCheckBox(frm));
   var objChecked = document.createElement("INPUT");
   objChecked.setAttribute("type", "hidden");
   objChecked.setAttribute("name", "checked_lines");
   objChecked.setAttribute("id", "checked_lines");
   objChecked.setAttribute("value", numChecked(frm));
   frm.appendChild(objTotal);
   frm.appendChild(objChecked);
}
//-------------------------------------------------------
// Check box routines end
//-------------------------------------------------------

