
//Enable to set/remove several handlers for the same event-from PPK WS
function addEventSimple(obj,evt,fn) {
	if (obj.addEventListener)
		obj.addEventListener(evt,fn,false);
	else if (obj.attachEvent)
		obj.attachEvent('on'+evt,fn);
}
function removeEventSimple(obj,evt,fn) {
	if (obj.removeEventListener)
		obj.removeEventListener(evt,fn,false);
	else if (obj.detachEvent)
		obj.detachEvent('on'+evt,fn);
}

	function NoAct(){return false;}

	function ExtractMatchForeign(str)
	{
		var res="";
		//CHANGE UPDATE: (Hilla) 19/08/2009 an English string can have '_' char
		var re=new RegExp("[^A-Za-z0-9_]{1,}");
		var rArr=re.exec(str)
		if(rArr)
			res=rArr[0].toString();
		return res;
	}
	function ExtractMatchNoSpace(str)
	{
		var res="";
		var re=new RegExp("\\S{1,}");
		var rArr=re.exec(str)
		if(rArr)
			res=rArr[0].toString();
		return res;
	}
	function ExtractMatchName(str)
	{
		var res="";
		var re=new RegExp("[a-zA-Z0-9]{1,}");
		var rArr=re.exec(str)
		if(rArr)
			res=rArr[0].toString();
		return res;
	}
	function ExtractMatchCode(str)
	{
		var res="";
		var re=new RegExp("[A-Za-z0-9]{8}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{4}-[A-Za-z0-9]{12}");
		var rArr=re.exec(str)
		if(rArr)
			res=rArr[0].toString();
		return res;
	}
	function ExtractMatchNumeric(str)
	{
		var res="";
		var re=new RegExp("[0-9]{1,}");
		var rArr=re.exec(str)
		if(rArr)
			res=rArr[0].toString();
		return res;
	}
	function ValidEmail(str)
	{
		var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
		if(str!='')
			return (filter.test(str));
		else
			return true;
				
	}
	function ValidDate(str)
	{
		var date = parseString(str);
		
		if(str!='')
		{
			if(str.indexOf("/")==-1)
				return false;
			
			if(isNaN(date))
				return false;
			else 
				return true;
		}
		else
			return true;		
	}
	function parseString(input)
	{
		var d=null;
		var arr=input.split("/");
		if(arr.length == 3)
		{
			var dd=arr[0];
			var mm=arr[1];
			var yy=arr[2];
			var tmp=new Date(yy,mm-1,dd)
			if(!isNaN(tmp)) d=tmp;
		}
		return d;		
	}
	function Copy2Clipboard(str)
	{
			window.clipboardData.clearData("Text");
			window.clipboardData.setData("Text",str);
	}
	function GetFromQuery(el,query)
	{
		var val="";
		var q;
		if(query)
			q=query;
		else
			q=document.location.search;
		var qArr=q.split(el + "=");
		if(qArr.length>1)
		{
			val=qArr[1];
			if(val.indexOf("&")>-1) val=val.slice(0,val.indexOf("&"));
		}
		return val;
	}
	
	function GetOffsetLeft(obj)
	{
		if(obj)
		{
			var off=obj.offsetLeft;
			var pObj=obj.offsetParent;
			if(pObj) off+=GetOffsetLeft(pObj);
			return off;
		}
		else return 0;
	}
	function GetOffsetTop(obj)
	{
		if(obj)
		{
			var off=obj.offsetTop;
			var pObj=obj.offsetParent;
			if(pObj) off+=GetOffsetTop(pObj);
			return off;
		}
		else return 0;
	}
	
	function AddElToQueryStr(query,element,val)
	{
		var ret="";
//alert("AddElToQueryStr. \n query="+query+"\n element="+element+"\n val="+val)		
		if(element!="")
		{
 			
			if(query=="") //query is empty
				ret=element + "=" + val;
			else 
			{
				if(query.indexOf(element + "=")==-1) //element not in query
				{
					ret=query + "&" + element + "=" + val;
				}
				else // element found, need to replace value
				{
					var left="";
					var right="";

					left=query.substr(0,query.indexOf(element + "=")-1);

					right=query.substr(query.indexOf(element + "="));
					right=(right.indexOf("&")==-1)?"":right.substr(right.indexOf("&"));

					ret=left + right;
					ret+=(ret.Length==0)?element + "=" + val:"&" + element + "=" + val;
					ret=(ret.substr(0,1)=="&")?ret.substr(1):ret;
					
				}
			}
		}
		else
			ret=query;
			
		if(ret.indexOf("?")==-1)
		{ // without "?"
			indx=ret.indexOf("&")
			if(indx!=-1)
			{// for example:  a=1
			    if(indx==0) // first symbol: &
			    {// for example:  &b=2
			        ret="?"+ret.substring(1);
			    }
			    else
			    {// for example:   a=1&b=2
				    //old(22.20.2006):  ret=ret.substring(0,indx)+"?"+ret.substring(indx+1);
				    ret="?"+ret;
				}
			}
		}
 //alert("AddElToQueryStr. \n"+ret)
		return ret;
	}
	

	//***********************************
	//		Upload Function
	//***********************************

	<!-- start Upload ProgressBar functions -->
	function UploadProgress(progressID, wsCode)
	{
		var Height=200, Width=380;
		var top=(window.screen.availHeight/2)-(Height/2);
		var left=(window.screen.availWidth/2)-(Width/2);
		if ("undefined"!=typeof(moz) && moz) // For Mozilla
			window.open('../Tools/UploadProgress.aspx?ws=' + wsCode + '&guid=' + progressID,'UplProgress',"toolbar=0,scrollbars=0,location=0,status=0,menubar=0,resizable=1,height=" + Height + ",width=" + Width + ",top=" + top + ",left=" + left);
		else
			window.showModelessDialog('../Tools/UploadProgress.aspx?ws=' + wsCode + '&guid=' + progressID,'UplProgress',"help: no;scroll:no;status:no;resizable: Yes;dialogHeight:" + Height + "px;dialogWidth:" + Width + "px;dialogTop:" + top + "px;dialogLeft:" + left + "px;");
	}
	<!-- end Upload functions -->

	//***********************************
	//		end of Upload Function
	//***********************************	
