var usstates = new Array();
var i = 0;
usstates[i++] =  'Alabama';
usstates[i++] =  'Alaska';
usstates[i++] =  'Arizona';
usstates[i++] =  'Arkansas';
usstates[i++] =  'California';
usstates[i++] =  'Colorado';
usstates[i++] =  'Connecticut';
usstates[i++] =  'Delaware';
usstates[i++] =  'District of Columbia';
usstates[i++] =  'Florida';
usstates[i++] =  'Georgia';
usstates[i++] =  'Hawaii';
usstates[i++] =  'Idaho';
usstates[i++] =  'Illinois';
usstates[i++] =  'Indiana';
usstates[i++] =  'Iowa';
usstates[i++] =  'Kansas';
usstates[i++] =  'Kentucky';
usstates[i++] =  'Louisiana';
usstates[i++] =  'Maine';
usstates[i++] =  'Maryland';
usstates[i++] =  'Massachusetts';
usstates[i++] =  'Michigan';
usstates[i++] =  'Minnesota';
usstates[i++] =  'Mississippi';
usstates[i++] =  'Missouri';
usstates[i++] =  'Montana';
usstates[i++] =  'Nebraska';
usstates[i++] =  'Nevada';
usstates[i++] =  'New Hampshire';
usstates[i++] =  'New Jersey';
usstates[i++] =  'New Mexico';
usstates[i++] =  'New York';
usstates[i++] =  'North Carolina';
usstates[i++] =  'North Dakota';
usstates[i++] =  'Ohio';
usstates[i++] =  'Oklahoma';
usstates[i++] =  'Oregon';
usstates[i++] =  'Pennsylvania';
usstates[i++] =  'Rhode Island';
usstates[i++] =  'South Carolina';
usstates[i++] =  'South Dakota';
usstates[i++] =  'Tennessee';
usstates[i++] =  'Texas';
usstates[i++] =  'Utah';
usstates[i++] =  'Vermont';
usstates[i++] =  'Virginia';
usstates[i++] =  'Washington';
usstates[i++] =  'West Virginia';
usstates[i++] =  'Wisconsin';
usstates[i++] =  'Wyoming';


i=0;
var canadastates = new Array();
canadastates[i++] =  'Alberta';
canadastates[i++] =  'British Columbia';
canadastates[i++] =  'Manitoba';
canadastates[i++] =  'New Brunswick';
canadastates[i++] =  'Newfoundland';
canadastates[i++] =  'Northwest Territories';
canadastates[i++] =  'Nova Scotia';
canadastates[i++] =  'Nunavut';
canadastates[i++] =  'Ontario';
canadastates[i++] =  'Prince Edward Island';
canadastates[i++] =  'Quebec';
canadastates[i++] =  'Saskatchewan';
canadastates[i++] =  'Yukon';

function selectAllStates(states,predefined,selected)
{
    var index = 0;
     for(i=0;i<states.length;i++)
	    {
	       index = binarySearch(predefined.options,states[i]);
	        if(index!=-1)
	        {	
		        var st = predefined[index].id.toLowerCase();
		        for(k=0;k<states.length;k++)
		        {
		        	if(states[k].toLowerCase()==st)
		        		predefined.options[index].selected = true; 
		        }
	        }
	        //predefined.options[index].selected = true; }
	    }
	    addOptions(predefined,selected);
}


function selectAllOptions(obj)
{
    var len = obj.length;
    for( i=0;i<len;i++)
    {
        obj[i].selected = true;
    }
}


function addAllOptions(citySelect,selected)
{
    selectAllOptions(citySelect.options);
    addOptions(citySelect,selected);
}

function addOptions(citySelect,selected)
{
    var cities = citySelect.options;
    var selectedCities = selected.options;
    var index = 0;
    var optionObj;
    if( cities )
    {
        var len = cities.length
        for( i=0;i<len;i++ )
        {
            if( cities[i].selected == true)
            {
                optionObj = document.createElement("OPTION");
                if( selectedCities.length > 0 )
                {
                    index = binarySearch( selectedCities,cities[i].id );
                    selectedCities.add(optionObj,index);
                }
                else
                {
                    index = 0;
                    selectedCities.add(optionObj);
                }
                selectedCities[index].value = cities[i].value;
                selectedCities[index].text = cities[i].text;
                selectedCities[index].id = cities[i].id;
		if(selectedCities[index].title)
			selectedCities[index].title = cities[i].title;
                citySelect.remove(i);
                i=i-1;
                len = len-1;
            }
        }
    }
}

function addTextOption(val,selected,index)
{
    var selectedCities = selected.options;
    var optionObj = document.createElement("OPTION");
    selectedCities.add(optionObj,index);
    selectedCities[index].value = val;
    selectedCities[index].text = val;
    selectedCities[index].id = val;
}


function deselectOptions(obj)
{
    var len = obj.length;
    for( i=0;i<len;i++)
    {
        obj[i].selected = false;
    }

}

function sortOptions(selected)
{
    var optionObj = new Array(selected.options.length);
    for(i=0;selected.options.length>0;i++)
    {
        optionObj[i] = selected.options[0].value;
        selected.remove(0);
    }
    optionObj.sort();
    var index;
    var obj;
    for(i=0;i<optionObj.length;i++)
    {
        index = binarySearch(selected.options,optionObj[i]);
        obj = document.createElement("OPTION");
        obj.value = optionObj[i];
        obj.text = optionObj[i];
        obj.id = optionObj[i];
        selected.options.add(obj,index);
    }
}
function binarySearch(array, find)
{
        var low=0;
        var high=array.length-1;
        while(low<=high)
        {
                var aTry=parseInt((low+high)/2);
                var checkThis= array[aTry].id.toLowerCase();
                if(checkThis==find.toLowerCase()){low=aTry;break;};
                if(checkThis<find.toLowerCase()){low=aTry+1;continue;};
                if(checkThis>find.toLowerCase()){high=aTry-1;continue;};
        }
        return low;
}


function binarySearchNumeric(array, find)
{
        var low=0;
        var high=array.length-1;
        while(low<=high)
        {
                var aTry=parseInt((low+high)/2);
                var checkThis= parseInt(array[aTry].id);
                if(checkThis==parseInt(find)){low=aTry;break;};
                if(checkThis<parseInt(find)){low=aTry+1;continue;};
                if(checkThis>parseInt(find)){high=aTry-1;continue;};
        }
        return low;
}

function open_window(url)
{
    self.name = "parent";
    mywin = window.open(url,"info",'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=auto,resizable=1,width=500,height=480,left=420,top=200');
    mywin.focus();
}
function open_windowWithMenuBar(url)
{
    self.name = "parent";
    mywin = window.open(url,"info",'toolbar=0,location=0,directories=0,status=0,menubar=1,scrollbars=yes,resizable=1,width=660,height=500,left=150,top=150');
    mywin.focus();
}
function trim(str)
{
    return str.replace(/^\s*|\s*$/g,"");
}


function getCookieValue (cookieName) {
  var exp = new RegExp (escape(cookieName) + "=([^;]+)");
  if (exp.test (document.cookie + ";")) {
    exp.exec (document.cookie + ";");
    return unescape(RegExp.$1);
  }
  else return false;
}

function deleteCookie (cookieName) {

  if (getCookieValue (cookieName)) writePersistentCookie (cookieName,"Pending delete","years", -1);
  return true;
}


function writePersistentCookie (CookieName, CookieValue, periodType, offset) {

  var expireDate = new Date ();
  offset = offset / 1;

  var myPeriodType = periodType;
  switch (myPeriodType.toLowerCase()) {
    case "years":
      expireDate.setYear(expireDate.getFullYear()+offset);
      break;
    case "months":
      expireDate.setMonth(expireDate.getMonth()+offset);
      break;
    case "days":
      expireDate.setDate(expireDate.getDate()+offset);
      break;
    case "hours":
      expireDate.setHours(expireDate.getHours()+offset);
      break;
    case "minutes":
      expireDate.setMinutes(expireDate.getMinutes()+offset);
      break;
    default:
      alert ("Invalid periodType parameter for writePersistentCookie()");
      break;
  }

  document.cookie = escape(CookieName ) + "=" + escape(CookieValue) + "; expires=" + expireDate.toGMTString() + "; path=/";
}
var loadTime;
function testBackButton(url)
{
    if(getCookieValue("loadTime") != loadTime)
    {
        window.location=url;        
    }
}


function fullView(id,linkId,moreStr,lessStr,locale)
{
	var list = document.getElementById(id);
	var changeIcon = document.getElementById(linkId);
	if (locale=="en")
	{
		theText = changeIcon.innerHTML.substring(0,4) == moreStr ? (lessStr + ' &#9650;') : (moreStr + ' &#9660;')
	}
	else
	{
		theText = changeIcon.innerHTML.substring(0,7) == moreStr ? (lessStr + ' &#9650;') : (moreStr+ ' &#9660;')
	}
	changeIcon.innerHTML = theText;
	theHeight = list.style.height == "30px" ? "auto" : "30px"
	theFlow = list.style.overflow == "hidden" ? "visible" : "hidden"
	list.style.height = theHeight
	list.style.overflow = theFlow;
}


// By : Alok Bagwale 
// Dated : 01-11-07

//To count the selected check boxes
function findChecked(chkBoxObjName)
{
	var count = 0;
	if(chkBoxObjName.length)
	{
		for(i=0;i<chkBoxObjName.length;i++)
		{
			if(chkBoxObjName[i].checked  == true)
				count++;
		}
	}
	else if(chkBoxObjName.checked  == true)
	{
		count++;
	}
	return count;	
}

function findUnchecked(chkBoxObjName)
{
	var count = 0;
	if(chkBoxObjName.length)
	{
		for(i=0;i<chkBoxObjName.length;i++)
		{
			if(chkBoxObjName[i].checked  == false)
				count++;
		}
	}
	else if(chkBoxObjName.checked  == true)
	{
		count++;
	}
	return count;	
}

function unCheckAll(chkBoxObjName)
{
	if(chkBoxObjName.length)
	{
		for(i=0;i<chkBoxObjName.length;i++)
			chkBoxObjName[i].checked  = false;
		return true;
	}
	return false;
}
function isNumberKey(evt)
{
	var charCode = (evt.which) ? evt.which : evt.keyCode
	if (charCode > 31 && (charCode < 48 || charCode > 57) || charCode==13)
		return false;
	return true;
}

function isFloatNumberKey(evt, val)
{
	var charCode = (evt.which) ? evt.which : evt.keyCode
	if (charCode == 46 &&  val.indexOf(".")==-1)
		return true;
	if (charCode > 31 && (charCode < 48 || charCode > 57))
		return false;
	return true;
}

function isDateKey(evt, val)
{
	var charCode = (evt.which) ? evt.which : evt.keyCode
	if (charCode == 47 &&  val.indexOf(".")==-1)
		return true;
	if (charCode > 31 && (charCode < 48 || charCode > 57))
		return false;
	return true;
}

function formatCurrency(num) 
{
	if(num=="")
	num = "0";
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
	cents = "0" + cents;
	return (num + '.' + cents);
}

/* USES::::
Input Number : 	<INPUT id="txtChar" onkeypress="return isNumberKey(event);"  
				onblur="this.value=(this.value=='')?'0':this.value;"
				type="text" name="txtChar">
Input Amount :	<INPUT id="txtChar" onkeypress="return isFloatNumberKey(event,this.value)" 
				onblur="this.value=formatCurrency(this.value);"
				type="text" name="txtChar">
Input Date 	:	<INPUT id="txtChar" onkeypress="return isDateKey(event,this.value)" 
				type="text" name="txtChar">

To Control the length of TEXTAREA text box 
<textarea onkeypress="return (this.value.length <= 10);"  name="testdetail" cols="30" rows="10" ></textarea>
*/

