
var xmlhttp;
		
function loadURL(url) {
	xmlhttp = null;
	if (window.XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); } else if (window.ActiveXObject) {xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");  }
	if (xmlhttp!=null){
	  xmlhttp.onreadystatechange = state_change;
	  xmlhttp.open("GET",url,true);
	  xmlhttp.send(null);
	};
};


function StrReplace(conversionString,inChar,outChar)
{
  var convertedString = conversionString.split(inChar);
  convertedString = convertedString.join(outChar);
  return convertedString;
};

function IsDate(dateStr) {
	
	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})(\/|-)(\d{4})$/;
	var matchArray = dateStr.match(datePat); // is the format ok?
	
	if (matchArray == null) {
	alert("Please enter date as either mm/dd/yyyy or mm-dd-yyyy.");
	return false;
	}
	
	month = matchArray[1]; // p@rse date into variables
	day = matchArray[3];
	year = matchArray[5];
	
	if (month < 1 || month > 12) { // check month range
	alert("Month must be between 1 and 12.");
	return false;
	}
	
	if (day < 1 || day > 31) {
	alert("Day must be between 1 and 31.");
	return false;
	}
	
	if ((month==4 || month==6 || month==9 || month==11) && day==31) {
	alert("Month "+month+" doesn`t have 31 days!")
	return false;
	}
	
	if (month == 2) { // check for february 29th
	var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
	if (day > 29 || (day==29 && !isleap)) {
	alert("February " + year + " doesn`t have " + day + " days!");
	return false;
	}
	}
	return true; // date is valid
}



function js_safe(txt){
	var sReturn = '';
	sReturn = txt;
	sReturn = StrReplace(sReturn,"<","");
	sReturn = StrReplace(sReturn,">","");
	sReturn = StrReplace(sReturn,"\'","");	
	return sReturn;
};

function Left(str, n)
{
   if (n <= 0)
         return "";
   else if (n > String(str).length)
         return str;
   else
         return String(str).substring(0,n);
}

 
function filter( id_list )
  {
	var f = document.frm; 
	var strTarget = f.txtFilter.value.toLowerCase();
	objList = get_object(id_list)
	for ( i=0 ; i < objList.rows.length ; i++ ){
	  var id = objList.rows[i].id
	  if (id != ''){
		var sRowText = objList.rows[i].innerText;
		if(  sRowText == undefined ){
			var sRowText = objList.rows[i].textContent ;
		};
		sRowText=sRowText.toLowerCase(); 
		var iPos = sRowText.search(strTarget) ;
		if(strTarget == '') {iPos=1};
		if( iPos > 0){
			objList.rows[i].style.display='';
		}else{
			objList.rows[i].style.display='none';
		};
	  };
	};
  };
 

function get_object(idname)
{
	if (document.getElementById)
	{return document.getElementById(idname);}
	else if (document.all)
	{return document.all[idname];}
	else if (document.layers)
	{return document.layers[idname];}
	else{return null;}
};
function collapse(id){
	img = get_object('img_'+id);
	obj = get_object(id);
	
	if  (obj.style.display == 'none'){
		obj.style.display = '';
		img.src='/WebBooks/images/common/icons/collapse.gif';
	}else{
		obj.style.display = 'none';
		img.src='/WebBooks/images/common/icons/expand.gif';
	};
	if( id == 'l_panel'){
	  var disp =  obj.style.display;	
	  setCookie( 'l_panel' , ""   , -1);
	  setCookie( 'l_panel' , disp , 1 );		
	}

};

 

function setCookie(c_name,value,expiredays){
		var exdate=new Date();exdate.setDate(exdate.getDate()+expiredays);
		var xCook = c_name+ "=" +escape(value)+
		((expiredays==null) ? "" : ";expires="+exdate.toGMTString())+ 
		"; path=/" ;
		document.cookie = xCook;
} 
function getCookie(c_name)
	{
	if (document.cookie.length>0)
	  {
	  c_start=document.cookie.indexOf(c_name + "=");
	  if (c_start!=-1) { 
		c_start=c_start + c_name.length+1; 
		c_end=document.cookie.indexOf(";",c_start);
		if (c_end==-1) c_end=document.cookie.length;
		var xVal = unescape(document.cookie.substring(c_start,c_end))
		return xVal;
		//return unescape(document.cookie.substring(c_start,c_end));
		} 
	  }
	return "";
}

function openwin_sm(url){
	openwindow('', url, 50, 50, 650, 650, 0, 0, 0, 1, 1, '')   
}; 

function openwindow(name, url, left, top, width, height, toolbar, menubar, statusbar, scrollbar, resizable, promptbox)
{
	 
  toolbar_str = toolbar ? 'yes' : 'no';
  menubar_str = menubar ? 'yes' : 'no';
  statusbar_str = statusbar ? 'yes' : 'no';
  scrollbar_str = scrollbar ? 'yes' : 'no';
  resizable_str = resizable ? 'yes' : 'no';
	
	if ( promptbox == '' ) {
		//alert('message: '+promptbox);
		window.open(url, name, 'left='+left+',top='+top+',width='+width+',height='+height+',toolbar='+toolbar_str+',menubar='+menubar_str+',status='+statusbar_str+',scrollbars='+scrollbar_str+',resizable='+resizable_str);
	
	}else{
		if ( confirm(promptbox) ) {
				window.open(url, name, 'left='+left+',top='+top+',width='+width+',height='+height+',toolbar='+toolbar_str+',menubar='+menubar_str+',status='+statusbar_str+',scrollbars='+scrollbar_str+',resizable='+resizable_str);
		};	
	};
};
 

function checkMail(strValue)
{
	var x = strValue;
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9])+$/;
	if (filter.test(x)) return true;
	else;
};


function IsEmail(strValue)
{
	var x = strValue;
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9])+$/;
	if (filter.test(x)) return true;
};


function isAlphabetic(val)
{
	if (val.match(/^[a-zA-Z]+$/))
	{ return true;
	} else {return false;} 
}
function isAlphaNumeric(val){
	if (val.match(/^[a-zA-Z0-9]+$/))
	{ return true;
	} else { return false;} ;
};


function isFileName(val){
	if ( val.match(/^[a-zA-Z0-9\s]+$/)) { 
		return true;
	} else { 
		return false;
	};
};

function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    return true;
};
	function ToNumeric(sText){
	   	
	   var ValidChars = "0123456789.";
	   var IsNumber = true;
	   var Char;
	   var sOut = '';
	   for (ii = 0; ii < sText.length; ii++)  { 
			Char = sText.charAt(ii); 
			if (ValidChars.indexOf(Char) == -1) { 
				IsNumber = false;
			}else{ 
				sOut = sOut + Char;
			};
		};
		if(sOut==''){sOut=0;}	
		return sOut;
	};
