	/* 
		Browser Detection
	*/

	

	var detect = navigator.userAgent.toLowerCase();
	var OS,browser,version,total,thestring;

	if (checkIt('konqueror'))
	{
		browser = "Konqueror";
		OS = "Linux";
	}
	else if (checkIt('omniweb')) browser = "OmniWeb"
	else if (checkIt('opera')) browser = "Opera"
	else if (checkIt('webtv')) browser = "WebTV";
	else if (checkIt('icab')) browser = "iCab"
	else if (checkIt('msie')) browser = "Internet Explorer"
	else if (!checkIt('compatible'))
	{
		browser = "Netscape Navigator"
		version = detect.charAt(8);
	}
	else browser = "An unknown browser";

	if (!version) version = detect.charAt(place + thestring.length);

	if (!OS)
	{
		if (checkIt('linux')) OS = "Linux";
		else if (checkIt('x11')) OS = "Unix";
		else if (checkIt('mac')) OS = "Mac"
		else if (checkIt('win')) OS = "Windows"
		else OS = "an unknown operating system";
	}

	function checkIt(string)
	{
		place = detect.indexOf(string) + 1;
		thestring = string;
		return place;
	}



	/* 
		File name validation for uploaded files
		only files consisting of alphanumeric symbols are allowed
		ensures compatibility with the ASPSOFT.Upload Component
	*/

	var FileSeparator;
	if (OS == "Mac") 
		FileSeparator = ":";		
	else
		FileSeparator = "\\\\";	


	function isValidFileName(sFilePath) { 				
		var file =  getFileName(sFilePath);
		var filename_exp = /^(\w|\s|-){1,128}\.\w{3}/;		
		return true;	//filename_exp.test(file);		
	}	

	function getFileName(sFileName) {		
		var reg = new RegExp(FileSeparator, "i");			
		var folder = sFileName.split(reg);		
		var file = folder[folder.length-1];
		return file;
	}



	function preloadImages() { 
	   if (document.images) {
	    var imgFiles = preloadImages.arguments;
	    if (document.preloadArray==null) document.preloadArray = new Array();
	    var i = document.preloadArray.length;
	    with (document) for (var j=0; j<imgFiles.length; j++) if (imgFiles[j].charAt(0)!="#"){
	      preloadArray[i] = new Image;
	      preloadArray[i++].src = imgFiles[j];
	  } }
	}
	
	
	function swapImgRestore() { //v2.0
	  if (document.swapImgData != null)
	    for (var i=0; i<(document.swapImgData.length-1); i+=2)
	      document.swapImgData[i].src = document.swapImgData[i+1];
	}
	
	function swapImage() { //v2.0
	  var i,j=0,objStr,obj,swapArray=new Array,oldArray=document.swapImgData;
	  for (i=0; i < (swapImage.arguments.length-2); i+=3) {
	    objStr = swapImage.arguments[(navigator.appName == 'Netscape')?i:i+1];
	    if ((objStr.indexOf('document.layers[')==0 && document.layers==null) ||
	        (objStr.indexOf('document.all[')   ==0 && document.all   ==null))
	      objStr = 'document'+objStr.substring(objStr.lastIndexOf('.'),objStr.length);
	    obj = eval(objStr);
	    if (obj != null) {
	      swapArray[j++] = obj;
	      swapArray[j++] = (oldArray==null || oldArray[j-1]!=obj)?obj.src:oldArray[j];
	      obj.src = swapImage.arguments[i+2];
	  } }
	  document.swapImgData = swapArray; //used for restore
	}



	 
//	var filename_exp = /^(\\{2}|([a-z]{1}:\\{1,2}))((\w|\s|-)+\\{1,2})*(\w|\s|-){1,128}\.\w{3}/i 		
	
	function checkFile(filename) {
		var reg = new RegExp("*"+FileSeparator);		
		filename.match(reg);
		var file =  RegExp.rightContext;
		var filename_exp = /(\w|\s|-){1,128}\.\w{3}/i;
		return filename_exp.test(file);		
	}	
	
	function isValid(pattern, str) {
	return pattern.test(str)
	}
	
	function executeaction(actionid,paramstr){
	var win_name;
	var win_link;
		if(actionid!='')
		{
			GetMainDivScroll()
			if(actionid=='88888') //Upload templates
			{
				link_pos=paramstr.indexOf("__link=")
				name_pos=paramstr.indexOf("&__name=")
				if (name_pos > 0)
				{
					win_link= paramstr.substring(link_pos+7,name_pos)
					win_name= paramstr.substring(name_pos+8)
					if ( win_name.indexOf("&") > 0 )
					{
						win_name= win_name.substring(0,win_name.length-1)
					}
					else
					{
						win_name= win_name.substring(0,win_name.length)
					}
				}
				else
				{
					win_link= paramstr.substring(link_pos+7)
				}
				wnd=window.open(win_link,"",'title='+ win_name +',width=320,height=200,resizable=no,scrollbars=no,toolbar=no,menubar=no,location=no');wnd.focus()
				//wnd=window.open(win_link,"",'title='+ win_name +',width=780,height=500,resizable=yes,scrollbars=yes,toolbar=no,menubar=yes,location=no');wnd.focus()
				wnd.name= win_name
			}
			else
			{
				top.document.webapp.__action.value=actionid
				if(paramstr!=''){ 
					top.document.webapp.action=top.document.webapp.action + '?' + paramstr
				}
				top.document.webapp.submit()
				top.document.webapp.action=''
			}
		}
	}
//----------------------------------------
	function executeactioninnew(actionid,paramstr)
		{
 /* 
 paramstr  all poisibles parameters
	 
channelmode,directories ,fullscreen ,location ,menubar ,resizable ,scrollbars ,status ,titlebar, toolbar -> //all of them can have "yes" or "no" value
 
height = number
left = number
top = number
width = number
*/
var win_name ='';
var win_link;
		if(paramstr == "")
			{  
			paramstr = 'width=800,height=600,resizable=yes,scrollbars=yes,toolbar=no,menubar=no,location=no';	
			}
 
		if(actionid!='')
			{   
	document.webapp.__action.value=actionid
	wnd=window.open('emptynew.htm',"",paramstr);
	wnd.focus();
 			}
		}
 
    function getDataFromChild()
        {
 	return window.document.body.innerHTML;
		}
    
	function FocusMe(o) 
		{
			o.style.width = '';
			o.scrollIntoView(); 
		}
	function BlurMe(o)
	{
		o.style.width = o.minwidth;
	}
// functions necessary for Calendar
 
var CallWindow;
function CalendarWin()  
{
 var t_String = new String();
     t_String = 'width=252, height=247,top=' + (Ycoord - (320 + ObjHeight ))  + ',left=' +(Xcoord -125)+',resizable=no';
     CallWindow=window.open('calendar.htm','Calendar',t_String);
     CallWindow.focus();
}
function ChangeDateObject(DateObjectName, DatePos, MonthPos, YearPos, DateElementCount, DateObjectType, pos1, sep1, pos2, sep2, pos3)
{
	popup_calendar_DateObjectName = eval("document.all." + DateObjectName);
	if(typeof eval(popup_calendar_DateObjectName) !="object")
	{
	alert(DateObjectName + "  is Undefined");
	}
	else{
	popup_calendar_DatePos  = DatePos;
 	popup_calendar_MonthPos = MonthPos;
	popup_calendar_YearPos  = YearPos;
	popup_calendar_sep1 =sep1;
	popup_calendar_sep2=sep2;
	popup_calendar_DateObjectType = DateObjectType;
	CalendarWin();
	}
}
function SetCoordinates(thisObj,Xcoordinates,Ycoordinates)
{
   ObjWidth  = thisObj.width;
   ObjHeight = thisObj.height;
   Xcoord = Xcoordinates;
   Ycoord = Ycoordinates; 
}
var ObjWidth=0;
var ObjHeight=0;
var Xcoord=0;
var Ycoord=0;
var popup_calendar_DateObjectType;
var popup_calendar_DateObjectName;
var popup_calendar_DatePos;
var popup_calendar_MonthPos;
var popup_calendar_YearPos;
var popup_calendar_sep2;
var popup_calendar_sep1;

function SetMainDivScroll()
{
   if(typeof webapp.__PreviousMainDIVScrollTop == "object")
    {
	if (oDiv.readyState == 'complete')
		{
		oDiv.scrollTop= webapp.__PreviousMainDIVScrollTop.value
 		
        }
	} 

   if(typeof webapp.__PreviousMainDIVScrollLeft == "object" )
    {
      if (oDiv.readyState == 'complete')
        {
        oDiv.scrollLeft= webapp.__PreviousMainDIVScrollLeft.value
		}
 	}
 	SetFocusOnLastObject();
}

function GetMainDivScroll()
{
   if(typeof webapp.__PreviousMainDIVScrollTop == "object")
    {
	if (oDiv.readyState == 'complete')
		{
        webapp.__PreviousMainDIVScrollTop.value= oDiv.scrollTop;		 
 		}
	} 
 
   if(typeof webapp.__PreviousMainDIVScrollLeft == "object" )
    {
      if (oDiv.readyState == 'complete')
        {
        webapp.__PreviousMainDIVScrollLeft.value= oDiv.scrollLeft;
		}
 	}

}
function SetFocusOnLastObject()
{
    if(typeof webapp.__LastObjectClickedBeforePosting =="object")
	 {
      var LastObject = webapp.__LastObjectClickedBeforePosting.value;
	  if(typeof document.all[LastObject] =="object")
		{
			document.all.item(LastObject).focus();
			if( document.all.item(LastObject).type != "select-one" )
				{
					document.all.item(LastObject).select();
				}
		}
	 }
}
function  ExecuteActionOnEnter(ActionOnEnter)
 {
   //  Save clicked Object name 
   if(typeof webapp.__LastObjectClickedBeforePosting =="object")
	 {
      webapp.__LastObjectClickedBeforePosting.value = event.srcElement.name; 
     }
   if(event.keyCode=="13")
	{
			event.returnValue = false;
			executeaction(ActionOnEnter,'');
			return true;
	}
 }
 //this function  checks for  numeric pressed key 
function CheckIsKeyNumeric(ActionOnEnter)
{
	if(event.keyCode=="13" && ActionOnEnter !='')
		{
		//  Save clicked Object name 
			if(typeof webapp.__LastObjectClickedBeforePosting =="object")
				 {
			   webapp.__LastObjectClickedBeforePosting.value = event.srcElement.name; 
			  }
			event.returnValue = false;
			executeaction(ActionOnEnter,'');
			return true;
		}
var AllNumbers = new String (";37;38;39;40;36;35;13;8;46;48;49;50;51;52;53;54;55;56;57;190;96;97;98;99;100;101;102;103;104;105;110")
var lFound
lFound  = AllNumbers.search(";" + event.keyCode)
	if (lFound == -1)
	{
	 event.returnValue = false;	
	}
	else
	{
		
	}
}

function CheckAll(chkStr,check)
{

	var ml = document.webapp;
	var len = ml.elements.length;
	var chk;
	if (check==null) check=true;
	if (chkStr==null) chk=''; else chk=chkStr;
	for (var i = 0; i < len; i++) 
	{
	    var e = ml.elements[i];
	    if ((e.name == "__mycheck") && (chk.indexOf('('+e.value+')')>-1) ) e.checked = check;
	    
	}


}
function ClearAll(chkStr)
    {
		CheckAll(chkStr,false);
    }