//------------------------------------------------------------------------------
function setupCalendar(input_fld, trigger_id, format)
{
	Calendar.setup({
      inputField  : input_fld,
      ifFormat    : (!format ? "%Y-%m-%d" : format),
      button      : trigger_id
	}
  );
}
//------------------------------------------------------------------------------
function navigatePaging(url, page, totalPages)
{
	if(!isNumeric(page)) {
		alert('Please enter only numbers'); page.focus(); return false;
	}
	pageId = trimAll(page.value);
	if(pageId > totalPages || pageId < 1) {
		alert('Invalid Page'); page.focus(); return false;
	}
	window.location	=	url+pageId;
	return false;
}
//------------------------------------------------------------------------------
function loadPage(url, objAnchor, rh)
{
	if ( objAnchor != "" ) {
		var anchorParent = objAnchor.parentNode.parentNode.parentNode.id;
		rh  = "process_"+anchorParent;
	} else {
		rh	=	"process_"+rh;
	}

	$.ajax({
	  type: "GET",
	  url: url,
	  success: eval(rh)
	});
	return false;
}
//------------------------------------------------------------------------------
function controlLbLayer(mode)
{
	if(mode == "block") { $('select').hide(); $('#lb_layer').show("slow"); }
	else { $('select').show(); $('#lb_layer').hide("slow"); }
}
//------------------------------------------------------------------------------
//controlBlock('card', 'block');
//controlBlock('card', 'none');
function controlBlock(eltId, mode)
{
	var obj = document.getElementById(eltId);
	obj.style.display = mode;
}
//------------------------------------------------------------------------------
function goBack(url)
{
	if(url == "")
		history.go(-1);
	else
		window.location	=	url;
}
//------------------------------------------------------------------------------
function goToPage(url)
{
	window.location	=	url;
}
//------------------------------------------------------------------------------
function delAlert(url)
{
	if(confirm("Are you sure to delete?")) {
		window.location	=	url;
	}
	return false;
}
//------------------------------------------------------------------------------
function controlTabs(noOfTabs, curTab, className, source)
{
	for(i=1;i<=noOfTabs;i++) 
	{
		obj	=	document.getElementById("tab_"+i);
		obj.className	=	'';
	}
	obj	=	document.getElementById("tab_"+curTab);
	obj.className	=	className;
	window.frames[0].location.href	=	source;
}
//------------------------------------------------------------------------------
function swapImage(imgObj, id)
{
	imgPath	=	imgObj.src;
	if(id != undefined) {
		if(imgPath.indexOf(id.toLowerCase()) > 0) {
			return true;
		}
	}
	arrPath	= imgPath.split("_");
	if(arrPath[1] == "on.gif")
		imgObj.src = eval("'"+arrPath[0]+"_off.gif'");
	else
		imgObj.src = eval("'"+arrPath[0]+"_on.gif'");
}
//------------------------------------------------------------------------------
function popUp(url, win_name, width, height, resize, scroll, top, left)
{
	popWin = window.open(url, win_name, "toolbar=no, location=no, directories=no, status=no, menubar=no, resizable="+(!resize ? "yes" : resize)+", copyhistory=no, scrollbars="+(!scroll ? "yes" : scroll)+", width="+(!width ? "400" : width)+", height="+(!height ? "300" : height)+", top="+(!top ? "50" : top)+", left="+(!left ? "50" : left));
	popWin.focus();
}
//------------------------------------------------------------------------------
/*
Submit the form to a popup window. After doing the validation call
openTarget(objForm, 'windowName', width, height);
*/
function openTarget(form, windowName, width, height, resize, scroll, top, left)
{
	form.target = windowName;
	popUp('', windowName, width, height, resize, scroll, top, left);
}
//------------------------------------------------------------------------------
// rounds number to X decimal places, defaults to 2
function round(number, X) 
{
	X = (!X ? 2 : X);
	return Math.round(number*Math.pow(10,X))/Math.pow(10,X);
}
//------------------------------------------------------------------------------
function rnd()
{
   rnd.seed = (rnd.seed*9301+49297) % 233280;
   return rnd.seed/(233280.0);
}
//------------------------------------------------------------------------------
function rand(number)
{
   return Math.ceil(rnd()*number);
}
//------------------------------------------------------------------------------
// onmouseover="swap(this, '../image/but-add-cust-r.gif')"
function swap(obj, pic)
{
  obj.src = pic;
}
//------------------------------------------------------------------------------
function getURL()
{
	url = document.location.href;
	x   = url.indexOf(".");
	x	= url.indexOf("/",x);
	return url.substring(0,x);
}
//------------------------------------------------------------------------------
function formatMoney(amount)
{
	var i = parseFloat(amount);
	if(isNaN(i)) { i = 0.00; }
	var minus = '';
	if(i < 0) { minus = '-'; }
	i = Math.abs(i);
	i = parseInt((i + .005) * 100);
	i = i / 100;
	s = new String(i);
	if(s.indexOf('.') < 0) { s += '.00'; }
	if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
	s = minus + s;
	return s;
}
//------------------------------------------------------------------------------
function transfer(src, dest)
{
	/*onclick="transfer(this.form.elements['available_processes[]'],this.form.elements['allocated_processes[]']);"*/
	for(i=0;i<src.options.length;i++) {
		o=src.options[i];
		if(o.selected) {
			var tmpOption=new Option;
			tmpOption.value=o.value;
			tmpOption.text=o.text;
			dest.options[dest.options.length]=tmpOption;
			src.options[i--]=null;
		}
	}
}
//------------------------------------------------------------------------------
/*
Drop down name : sequence
<select name="sequence">
</select>

<input type=button value='Move Up' style="width:150px"  onclick="moveUp(this.form.sequence)"><p>
<input type=button value='Move Down' style="width:150px" onclick="moveDown(this.form.sequence)"><p>
<input type=button value='Save Sequence' style="width:150px" onclick="updateSequence(this.form, this.form.hiddenVariable,this.form.seq_drop_down_name)"><p>

<input type=hidden name='videoOrders' value=''>
*/
function moveUp(obj)
{
	sI = obj.selectedIndex;
	if(sI>0)
	{
		tmpVal	= obj.options[sI-1].value;
		tmpText = obj.options[sI-1].text;
		obj.options[sI-1].value = obj.options[sI].value;
		obj.options[sI-1].text	= obj.options[sI].text;
		obj.options[sI].value	= tmpVal;
		obj.options[sI].text	= tmpText;
		obj.selectedIndex -=1;
	}
	else
	{
		alert("Please select an item");
		obj.focus();
	}
}
//------------------------------------------------------------------------------
function moveDown(obj)
{
	sI = obj.selectedIndex;
	if(sI>=0)
	{	
		if(sI < obj.options.length-1)
		{
			tmpVal = obj.options[sI+1].value;
			tmpText = obj.options[sI+1].text;
			obj.options[sI+1].value = obj.options[sI].value;
			obj.options[sI+1].text = obj.options[sI].text;
			obj.options[sI].value = tmpVal;
			obj.options[sI].text = tmpText;
			obj.selectedIndex +=1;
		}
	}
	else
	{
		alert("Please select an item");
		obj.focus();
	}
}
//------------------------------------------------------------------------------
function updateSequence(form, hiddenfield, objListbox)
{
	setListBoxOrder(hiddenfield,objListbox);
	form.submit();
}
//------------------------------------------------------------------------------
function setListBoxOrder(hiddenfield,listbox)
{		
	strOrder = "";
	for(i=0;i<listbox.options.length;i++) {
		strOrder += "," + listbox.options[i].value;
	}
	strOrder = strOrder.substring(1);   
	hiddenfield.value = strOrder;	
}
//------------------------------------------------------------------------------
function replaceAll(a,b,c)
{
	var ret="";
	var i=0;
	if(a.indexOf(b)==-1)
		return a;
	for(i=0;i<a.length;) {
		oldi=i;
		if((i=a.indexOf(b,oldi))==-1) {
			ret+=a.substring(oldi);
			break;
		}
		else {
			ret+=a.substring(oldi,i)+c;
			i+=b.length;
		}
	}
	return ret;
}
//------------------------------------------------------------------------------
function LimitText(fieldObj,maxChars)
{
	var result = true;
	if (fieldObj.value.length >= maxChars)
	    result = false;  
	if (window.event)
	    window.event.returnValue = result;
	return result;
}
//------------------------------------------------------------------------------
function getParameter(strParamName)
{
	var strReturn = "";
	var strQueryString = top.window.location.search;
    var aQueryString = strQueryString.split("&");
    for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
      if ( aQueryString[iParam].indexOf(strParamName + "=") > -1 ){
        var aParam = aQueryString[iParam].split("=");
        strReturn = aParam[1];
        break;
      }
    }
	return strReturn;
}
//------------------------------------------------------------------------------
function setCookie(cookieName, cookieValue, lifeTime, path, domain, isSecure)
{
	if( !cookieName ) { return false; }
	life_time	=	lifeTime * 24 * 60 * 60 * 1000;
	document.cookie = escape( cookieName ) + "=" + escape( cookieValue ) + ( lifeTime ? ";expires=" + ( new Date( ( new Date() ).getTime() + (life_time) ) ).toGMTString() : "" ) + ( path ? ";path=" + path : "") + ( domain ? ";domain=" + domain : "") + ( isSecure ? ";secure" : "");
}
//------------------------------------------------------------------------------
function getCookie(cookieName) 
{
	var cookieJar = document.cookie.split("; ");
	for( var x = 0; x < cookieJar.length; x++ ) 
	{
		var oneCookie = cookieJar[x].split( "=" );
		if( oneCookie[0] == escape( cookieName ) ) { return unescape( oneCookie[1] ); }
	}
	return null;
}
//------------------------------------------------------------------------------
function pad(str, len, pad, dir) 
{
	if (typeof(len) == "undefined") { var len = 0; }
	if (typeof(pad) == "undefined") { var pad = ' '; }
	if (typeof(dir) == "undefined") { var dir = "left"; }

	if (len + 1 >= str.length) {
		switch (dir) {
			case "left":
				str = Array(len + 1 - str.length).join(pad) + str;
				break;

			case "both":
				var right = Math.ceil((padlen = len - str.length) / 2);
				var left = padlen - right;
				str = Array(left+1).join(pad) + str + Array(right+1).join(pad);
				break;

			case "right":
				str = str + Array(len + 1 - str.length).join(pad);
				break;
		}
	}
	return str;
}
//------------------------------------------------------------------------------
function addSlashes(str)
{
	return str.replace(/\'/g,'\'');
}
//------------------------------------------------------------------------------
function stripSlashes(str)
{
	return str.replace(/\\/g, "");
}
//------------------------------------------------------------------------------
function correctPNG() // correctly handle PNG transparency in Win IE 5.5 & 6.
{
   var arVersion = navigator.appVersion.split("MSIE")
   var version = parseFloat(arVersion[1])
   if ((version >= 5.5) && (document.body.filters)) {
      for(var i=0; i<document.images.length; i++) {
         var img = document.images[i]
         var imgName = img.src.toUpperCase()
         if (imgName.substring(imgName.length-3, imgName.length) == "PNG") {
            var imgID = (img.id) ? "id='" + img.id + "' " : ""
            var imgClass = (img.className) ? "class='" + img.className + "' " : ""
            var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
            var imgStyle = "display:inline-block;" + img.style.cssText 
            if (img.align == "left") imgStyle = "float:left;" + imgStyle
            if (img.align == "right") imgStyle = "float:right;" + imgStyle
            if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
            var strNewHTML = "<span " + imgID + imgClass + imgTitle
            + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
            + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
            + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>" 
            img.outerHTML = strNewHTML
            i = i-1
         }
      }
   }
}
//window.attachEvent("onload", correctPNG);
//------------------------------------------------------------------------------
function preloadImages() 
{ 
	var d=document; if(d.images){ if(!d.p) d.p=new Array();
    var i,j=d.p.length,a=preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.p[j]=new Image; d.p[j++].src=a[i];}}
}
//------------------------------------------------------------------------------
//Validation Functions
//------------------------------------------------------------------------------
function validateValue( strValue, strMatchPattern ) 
{
	var objRE = new RegExp( strMatchPattern);
 	//check if string matches pattern
	return objRegExp.test(strValue);
}
//------------------------------------------------------------------------------
function isEmpty(eltObj)
{
	strValue	=	trimAll(eltObj.value);
	if(strValue.length > 0) { return false; }
	return true;
}
//------------------------------------------------------------------------------
function isAlpha(eltObj)
{
	strValue	=	eltObj.value;
	pattern		=	'^[a-zA-Z]+$';
	var objRE	=	new RegExp( pattern );
	if(!objRE.test(strValue)) { return false; }
	return true;
}
//------------------------------------------------------------------------------
function isAlpha1(eltObj)
{
	strValue	=	eltObj.value;
	pattern		=	'^[a-zA-Z ]+$';
	var objRE	=	new RegExp( pattern );
	if(!objRE.test(strValue)) {	return false; }
	return true;
}
//------------------------------------------------------------------------------
function isNumeric(eltObj)
{
	strValue	=	eltObj.value;
	var pattern		=	'^[0-9]+$';
	var objRE	=	new RegExp( pattern );
	if(!objRE.test(strValue)) { return false; }
	return true;
}
//------------------------------------------------------------------------------
function isAlphaNumeric(eltObj)
{
	strValue	=	eltObj.value;	
	pattern		=	'^[a-zA-Z0-9 ]+$';
	var objRE	=	new RegExp( pattern );
	if(!objRE.test(strValue)) { return false; }
	return true;
}
//------------------------------------------------------------------------------
function isPhone(eltObj)
{
	strValue	=	eltObj.value;
	pattern		=	'^[0-9\-()+ ]+$';
	var objRE	=	new RegExp( pattern );
	if(!objRE.test(strValue) || strValue.length < 10) { return false; }
	return true;
}
//------------------------------------------------------------------------------
function isEmail(eltObj)
{
	strValue	=	eltObj.value;
	var objRE	=	/^[a-z0-9]([a-z0-9_\-\.]*)@([a-z0-9_\-\.]*)(\.[a-z]{2,3}(\.[a-z]{2}){0,2})$/i;
	if(!objRE.test(strValue))
	{
		return false;
	}
	return true;
}
//------------------------------------------------------------------------------
function isAmount(eltObj)
{
	strValue	=	eltObj.value;
	var pattern = /^[0-9]+(.){0,1}([0-9]*)$/i;
	var objRE	=	new RegExp( pattern );
	if(!objRE.test(strValue)) {	return false; }
	return true;
}
//------------------------------------------------------------------------------
//returns the no of check boxes checked in a form
function BoxesChecked(form, eltname)
{
  a = 0;
  for(var i = 0; i < form.elements.length; i++) {
	var e = form.elements[i];
	if(e.type == "checkbox" && e.name == eltname && e.checked) { a++; }
  }
  return a;
}
//------------------------------------------------------------------------------
//returns the no of radio boxes checked
function RadioCheck(form, eltname)
{
  a = 0;
  for(var i = 0; i < form.elements.length; i++) {
	var e = form.elements[i];
	if(e.type == "radio" && e.name == eltname && e.checked) { a++; }
  }
  return a;
}
//------------------------------------------------------------------------------
//  Check / Un Check all Check boxes
//  onclick="Checkall(this, document.form, 'cbox[]');"
function Checkall(chk, form, eltname)
{
 for(var i=0; i < form.elements.length; i++) {
	var e = form.elements[i];
	if (e.type == "checkbox" && e.name == eltname){ e.checked = chk.checked;}
 }
}
//------------------------------------------------------------------------------
//alerts an error if the first item is selected or none selected in a listbox
function chkListbox(item, Label)
{
  if(item.options.selectedIndex == 0 || item.options.selectedIndex == -1) {
    alert('Please select ' + Label); item.focus(); return false;
  }
  return true;
}
//------------------------------------------------------------------------------
//if(form.elements['toinv[]'].options.selectedIndex == -1) { alert('Pls select atleast one item'); return false; }
//alerts to chk at least one item from a listbox which has multiple atrrib
function chkListboxMultiple(form, eltname, Label)
{
  for(var i = 0; i < form.elements.length; i++) {
	var e = form.elements[i];
	if(e.type == "select-multiple" && e.name == eltname) {
		if(e.options.selectedIndex == -1) {
			alert('Please select atleast one ' + Label);
			return false;
		} else {
			return true;
		}
	}
  }
}
//------------------------------------------------------------------------------
//returns the no of items selected from a listbox which has multiple attrib
function itemsSelected(form, eltname)
{
  a = 0;
  for(var i = 0; i < form.elements.length; i++) {
	var e = form.elements[i];
	if(e.type == "select-multiple" && e.name == eltname) {
		for(j = 0; j < e.options.length; j++) {
			if(e.options[j].selected) { a++; }
		}
	}
  }
  return a;
}
//------------------------------------------------------------------------------
function makeItemsSelected(form, eltname)
{
  for(var i = 0; i < form.elements.length; i++) {
	var e = form.elements[i];
	if(e.type == "select-multiple" && e.name == eltname) {
		for(j = 0; j < e.options.length; j++) {
			e.options[j].selected	=	true;
		}
	}
  }
}
//------------------------------------------------------------------------------
//returns the radio box value of an element
function getRadioValue(radio)
{
 for (var i = 0; i < radio.length; i++) {
 	if (radio[i].checked) { break; }
 }
 return radio[i].value;
}
//------------------------------------------------------------------------------
function getSelectedItemText(item)
{
	return item.options[item.selectedIndex].text;
}
//------------------------------------------------------------------------------
function trimAll(strValue)
{
   var objRegExp = /^(\s*)$/;
   //check for all spaces
   if(objRegExp.test(strValue)) {
       strValue = strValue.replace(objRegExp, '');
       if( strValue.length == 0)
          return strValue;
   }
    
   //check for leading & trailing spaces
   objRegExp = /^(\s*)([\W\w]*)(\b\s*$)/;
   if(objRegExp.test(strValue)) {
       //remove leading and trailing whitespace characters
       strValue = strValue.replace(objRegExp, '$2');
   }
   return strValue;
}
//------------------------------------------------------------------------------
function rTrim(strValue)
{
	var objRegExp = /^([\w\W]*)(\b\s*)$/;
     if(objRegExp.test(strValue)) {
       //remove trailing a whitespace characters
       strValue = strValue.replace(objRegExp, '$1');
    }
	return strValue;
}
//------------------------------------------------------------------------------
function lTrim(strValue) 
{
	var objRegExp = /^(\s*)(\b[\w\W]*)$/;
    if(objRegExp.test(strValue)) {
       //remove leading a whitespace characters
       strValue = strValue.replace(objRegExp, '$2');
    }
	return strValue;
}
//------------------------------------------------------------------------------
function selectAll(fld)
{
	for(i=0;i<fld.length;i++)
		fld[i].checked=true;
}
//------------------------------------------------------------------------------
function selectNone(fld)
{
	for(i=0;i<fld.length;i++)
		fld[i].checked=false;
}
//------------------------------------------------------------------------------
function isPositiveInt(fld)
{
	if(parseInt(fld.value)>0)
		return true;
	return false;
}
//------------------------------------------------------------------------------
function isPositiveFloat(fld)
{
	return isNotNegativeFloat(fld)&& (parseFloat(fld.value)>0);	
}
//------------------------------------------------------------------------------
function isNotNegativeFloat(fld)
{
	var r1=new RegExp("^[0-9]*[.]{0,1}[0-9]*$")
	return r1.test(fld.value);
}
//------------------------------------------------------------------------------
function isNotNegativeInt(fld)
{
	var r1=new RegExp("^[0-9]*$")
	return r1.test(fld.value);
}
//------------------------------------------------------------------------------
function isPincode(fld)
{
	var r1 = new RegExp("^[1-9][0-9]{5}$")
	return r1.test(fld.value);
}
//------------------------------------------------------------------------------
function isPeriod(fld)
{
	var r1 = new RegExp("^[1-9][0-9]{2}$")
	return r1.test(fld.value);
}
//------------------------------------------------------------------------------
function isFloat(fld)
{
	var r1=new RegExp("^[\-\+]{0,1}[0-9]*[.]{0,1}[0-9]*$")
	return r1.test(fld.value);
}
//------------------------------------------------------------------------------
function isInt(fld)
{
	i=parseInt(fld.value);
	if(i>0 ||i==0 || i<0)
		return true;
	return false;
}
//------------------------------------------------------------------------------
function isSpace(fld)
{
	var r1 = new RegExp("^[ ]+$");
	return r1.test(fld.value);
}
//------------------------------------------------------------------------------
