//----------------------------------------
var new_window_param_string = 'width=820,height=620,resizable=yes,scrollbars=yes,toolbar=no,menubar=no,location=no,status=yes';
var new_window_selector_param_string = 'width=820,height=620,resizable=yes,scrollbars=yes,toolbar=no,menubar=no,location=no,status=yes';
//----------------------------------------
function CreatePageParam(pName, pValue)
{
	var oNewNode = document.createElement("INPUT");
	oNewNode.id = pName;
	oNewNode.name = pName;
	oNewNode.type = "hidden";
	oNewNode.value = pValue;
	document.webapp.appendChild(oNewNode);
}
//----------------------------------------
function GetPageParam(pName)
{
	return document.all(pName).value + "";
}
//----------------------------------------	
function DispatchParamStr(paramstr)
{
var param_arr, item_arr, i,p_name,p_value
	param_arr= paramstr.split('&');
	for( i = 0; i< param_arr.length ;i++){
		item_arr= param_arr[i].split('=');
		p_name= item_arr[0].substring(0,item_arr[0].length);
		p_value= item_arr[1];
		if (p_name != '' && p_name != null && p_name != '__action')
		{
			new_obj = eval('document.webapp.'+ p_name );
			if (typeof(new_obj ) == "undefined" || typeof(new_obj ) == "nothing" || typeof(new_obj ) == "empty" )
			{
				CreatePageParam(p_name, p_value);
			}
		}
	}	
	return true;
}
//----------------------------------------
function getparameter(paramstr,paramname)
{
var param_arr, item_arr, i,p_name,p_value
	param_arr= paramstr.split('&')
	for( i = 0; i< param_arr.length ;i++){
		item_arr= param_arr[i].split('=')
		p_name= item_arr[0].substring(2,item_arr[0].length)
		p_value= item_arr[1]
		if (p_name == paramname){
			return(p_value)
			break
		}
	}
	return(null)	
}
//----------------------------------------	
var invalid_filename_exp = /[\?/|\*<>"]+/
var filename_exp = /^(\\{2}|([a-z]{1}:\\{1,2}))((\w|\s|-)+\\{1,2})*(\w|\s|-){1,128}\.\w{3}/i 		
//----------------------------------------	
function isValid(pattern, str) {
return pattern.test(str)
}
//----------------------------------------
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;
		}
	}
}
//----------------------------------------
var ActionBlockTimeout,down
ActionBlockTimeout=0

function  CountDownActionUnblock()
 { 
    if(ActionBlockTimeout > 0)
 	{
	    ActionBlockTimeout= ActionBlockTimeout - 1;
		down=setTimeout("CountDownActionUnblock()",1000); 
	 }
 }
//----------------------------------------
function BlockDoubleClick()
{
	if (ActionBlockTimeout <= 0)
	{
		ActionBlockTimeout= 2
		down=setTimeout("CountDownActionUnblock()",1000);
		return false
	}
	else
	{
		alert("Second Click is forbidden while page is reloading form the server! \n\nPress 'OK' and WAIT while GMS responds \nor \nPress 'OK' and WAIT (" + ActionBlockTimeout + ") seconds to unlock protection!");
		return true
	}
}
//----------------------------------------
function executeaction( actionid, paramstr, in_new_or_back_button_caption, popwindowstyle)
{
    if (actionid == 99995)
    {
        editwnd= 'textedit.aspx?dbid=' + getparameter(paramstr,'dbid') + '&instanceid=' + getparameter(paramstr,'instanceid') + '&itemid=' + getparameter(paramstr,'itemid')+ '&language=' + getparameter(paramstr,'language')+ '&iseditable=' + getparameter(paramstr,'iseditable');
//        alert(editwnd);
        window.showModalDialog(editwnd, null, 'scroll:no; status:no; resizable: no');
        document.all("__action").value = document.all("__PreviousActionID").value;
        document.webapp.submit();        
    }
	else 
        if(( actionid == 3293)  || ((actionid == 15 || actionid == 302 || actionid == 307 ) && (GetPageParam("__SYSTEM_CUSTOM_DATABASE_ID") == 33)) )
        {
	        document.all("__action").value = actionid
	        document.webapp.action = "Contacts/Search.aspx"; //"Default.aspx";
	        document.webapp.submit();
	        return;
        }
        else
	    {
    	
		    if(actionid!='' && actionid!='0')
		    {
    //			alert('webapp.action= ' + webapp.action);
    //			alert('old_webapp_action= ' + old_webapp_action);
			    if( BlockDoubleClick()){return}
			    GetMainDivScroll()
			    if(paramstr!='')
			    { 
				    if (old_webapp_action == '')
				    {
					    old_webapp_action= webapp.action
				    }
    //NEW - BUG				DispatchParamStr(paramstr);
    //NEW - BUG				webapp.action= old_webapp_action;
				    paramstr = paramstr.replace('#', '%23');
				    webapp.action= old_webapp_action + '?' + paramstr;
			    }
			    else
			    {
				    old_webapp_action = webapp.action;
			    }
			    document.webapp.__action.value=actionid;
			    var targetpage; 
			    targetpage = 'emptynew.htm';
			    if((popwindowstyle!=null) && popwindowstyle!='')
			    {
				    var modres;
				    if (popwindowstyle.slice(0,7) == 'dialog:')
				    {
					    modres = window.showModalDialog(popwindowstyle.slice(7),window,"dialogWidth:300px;dialogHeight:200px;center:yes;status:no")
					    if (modres == true)
					    {
						    webapp.submit();
					    }
					    return;
				    }
				    else if (popwindowstyle.slice(0,5) == 'help:')
				    {
					    window.showHelp(popwindowstyle.slice(5));
					    return;
				    }
				    else if (popwindowstyle.slice(0,5) == 'oacs:')
				    {
					    targetpage = 'oacspopup.htm';
					    document.webapp.__action.value= in_new_or_back_button_caption;
					    in_new_or_back_button_caption = '1';
					    if (document.webapp.__paramstr == null)
					    {
						    CreatePageParam("__paramstr", paramstr);
					    }
					    else
					    {
						    document.webapp.__paramstr.value=paramstr;
					    }
    					
				    }
				    else if (popwindowstyle == new_window_selector_param_string )
				    {
				        wnd=window.open(targetpage,'',new_window_selector_param_string);
				        wnd.focus();
				        return;
				    }
			    }
			    if (in_new_or_back_button_caption == '1')
			    {
				    wnd=window.open(targetpage,'',new_window_param_string);
				    wnd.focus();
			    }
			    else
			    {
				    if (in_new_or_back_button_caption == '0' || in_new_or_back_button_caption == '' || in_new_or_back_button_caption == null)
				    {
					    webapp.submit()
				    }
				    else
				    {
					    document.webapp.__framebackbuttoncaprion.value=in_new_or_back_button_caption;
					    wnd=window.open('newpage_container.htm','',new_window_param_string);
					    wnd.focus();
				    }
			    }
		    }
		    else
		    {
		    //This is called on RETURN from SELECTOR LIST (WHEN ACTIONID = 0)(on Close Pop-UP)
			    var selector_name, selector_value, selector_text
			    selector_name= getparameter(paramstr,'system_selector_name');
			    if((selector_name!=null) && (selector_name!=''))
			    {
    //				alert( parameter_value )
				    selector_value = getparameter(paramstr,'system_selector_value');
				    selector_text = getparameter(paramstr,'system_selector_text');
				    SelectorUpdate( selector_name, selector_value, selector_text ); //MILEN
				    top.close();
    // Resolve on_close_action				
				    system_selector_on_close_action = getparameter(paramstr,'system_selector_on_close_action');
				    if((system_selector_on_close_action!=null) && (system_selector_on_close_action!=''))
				    {
					    if( system_selector_on_close_action > 0 )
					    {
						    old_webapp_action = webapp.action;
						    top.opener.document.all("__action").value = system_selector_on_close_action;
						    top.opener.document.webapp.submit();
					    }
				    }
			    }
		    }
	    }
}

//----------------------------------------
var popup_selector_Object

function SelectorListOpen(actionid, oSelector, selector_name, ParamStr)
{
	popup_selector_Object = oSelector;
	if(typeof eval(popup_selector_Object) !="object" )
	{
		alert(selector_name + "  is Undefined");
	}
	else
	{
		if (ParamStr != ''){ParamStr = ParamStr + '&'};
		ParamStr = ParamStr + '__system_selector_name=' + selector_name;
		ParamStr = ParamStr + '&__system_selector_value=' + oSelector.value;
		executeaction(actionid, ParamStr , '1', new_window_selector_param_string);
	}
}
//=================================================================
function  SelectorListOpenOnEnter(actionid, oSelector, selector_name, ParamStr)
{
   //  Save clicked Object name 
	if(typeof webapp.__LastObjectClickedBeforePosting =="object")
	{
		webapp.__LastObjectClickedBeforePosting.value = event.srcElement.name; 
	}
	if(event.keyCode=="13")
	{
		event.returnValue = false;
		SelectorListOpen(actionid, oSelector, selector_name, ParamStr)
		return true;
	}
}
//=================================================================
function  SelectorListOpenOnDblClick(actionid, oSelector, selector_name, ParamStr)
{
   //  Save clicked Object name 
	if(typeof webapp.__LastObjectClickedBeforePosting =="object")
	{
		webapp.__LastObjectClickedBeforePosting.value = event.srcElement.name; 
	}
	SelectorListOpen(actionid, oSelector, selector_name, ParamStr)
	return true;
}

//----------------------------------------
function SelectorUpdate( selector_name, selector_value, selector_text )
{
/* THIS IS FOR TEXT BOX !!!
	var oSelector = opener.document.all('qs' + selector_name)
	if(typeof oSelector[0] == "object")
	{
		oSelector[0].value = selector_text;
		oSelector[1].value = selector_value;
		oSelector[0].focus();
	}
*/
	var oSelectorHidden = top.opener.document.getElementsByName('__' + selector_name)
	if(typeof oSelectorHidden[0] == "object")
	{// HIDDEN PARAMETER!!
		if( oSelectorHidden[0].type == "hidden" )
		{
			oSelectorHidden[0].value = selector_value;
		}
        return
	}
    else
    {
	    var oSelectorHidden = top.opener.document.getElementsByName('qs' + selector_name)
	    if(typeof oSelectorHidden[0] == "object")
	    {
		    if( oSelectorHidden[0].type == "text" )
		    {
			    oSelectorHidden[0].value = selector_value;
			    oSelectorHidden[0].title = selector_text;
		    }
	    }

	    if(typeof oSelectorHidden[1] == "object")
	    {
		    oSelectorHidden[1].value = selector_value;
	    }
	    var oDivSelector = top.opener.document.getElementById('qs' + selector_name)
	    if(typeof oDivSelector == "object")
	    {
		    if((typeof oDivSelector.innerHTML == "string") && (oSelectorHidden[0].type != "text" ))
		    {
			    oDivSelector.innerHTML = '<u>' + selector_text + '</u>';
			    oDivSelector.focus();
		    }
	    }
    }
}

//----------------------------------------
var old_webapp_action;
old_webapp_action=''
var Action_Is_Executing;
Action_Is_Executing = 0

function set_WebApp_Action()
{
	webapp.action = old_webapp_action;
}
//----------------------------------------
function executeactioninnew(actionid,paramstr,backbuttoncaption)
{
/* 
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 old_actionid = 0;

if(paramstr == "")
	{  
	paramstr = new_window_param_string;	
	}

if(actionid!='')
	{   
		document.webapp.__action.value=actionid;
		old_webapp_action = webapp.action;
		if(paramstr!='')
		{
			webapp.action=webapp.action + '?' + paramstr;
		}
//				alert(webapp.action);
		if (backbuttoncaption == '')
		{
			wnd=window.open('emptynew.htm','',paramstr);
			wnd.focus();

		}
		else
			if (backbuttoncaption == '0')
			{
				webapp.__action.value=actionid
				old_webapp_action = webapp.action;
				if(paramstr!=''){ 
//							webapp.action=webapp.action + '?' + paramstr
					{ 
						if (webapp.action.value.indexOf("?") > 0 ) 
						{
							webapp.action=webapp.action + '&' + paramstr
						}
						else
						{
							webapp.action=webapp.action + '?' + paramstr
						}
					}

				}
				webapp.submit()
			}
			else
			{
				document.webapp.__framebackbuttoncaprion.value=backbuttoncaption;
				wnd=window.open('newpage_container.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();
}
//------------ marked old text
// function ChangeDateObject(DateObjectName, DatePos, MonthPos, YearPos, DateElementCount, DateObjectType, pos1, sep1, pos2, sep2, pos3)
// {
function ChangeDateObject(DateObjectName, DatePos, MonthPos, YearPos, DateElementCount, DateObjectType, pos1, sep1, pos2, sep2, pos3,thisO,evX,evY,ExecuteActionOnClose)
{   
    SetCoordinates(thisO,evX,evY);
	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;
		popup_calendar_ExecuteActionOnClose = ExecuteActionOnClose
		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;
var popup_calendar_ExecuteActionOnClose;
var correction_path;

//=================================================================
function getOffsetLeft(o) {
 var t = o.offsetLeft;
 while (o.offsetParent) {
  o  = o.offsetParent;
  t += o.offsetLeft;
 }
 return t;
};

//=================================================================
function SetMainPageSize( mode )
{
    var Correction =  oDiv.offsetTop;
    var oDivHeightNew = document.body.clientHeight - oDiv.offsetTop - 62;
    var oDivWidthNew= document.body.clientWidth - getOffsetLeft(oDiv);
	if( oDivHeightNew > 0)
	{    
	    oDiv.style.height = oDivHeightNew
	}
	if (oDiv.offsetWidth < oDiv.scrollWidth ){
		oDiv.style.width = oDiv.scrollWidth + 20
	}
    //oDiv.style.width = document.body.clientWidth - oDiv.offsetLeft; 
    if(oDiv.offsetWidth > oDivWidthNew)
    {
        oDiv.style.width = oDivWidthNew ;
    }
//    if(oDiv.offsetWidth < oDivWidthNew)
//    {
//        oDiv.style.width = oDivWidthNew ;
//    }    
//      var div = document.getElementById('mydiv');
//      div.style.width = document.body.clientWidth - getOffsetLeft(div) + "px";
  
}
//=================================================================
function SetMainDivScroll()
{//body onLoad="SetMainDivScroll()
	if (oDiv.readyState == 'complete')
	  {
	  	SetMainPageSize('onload');
	  }
	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 SetFocusOnLastObject()
{
    if(typeof webapp.__LastObjectClickedBeforePosting =="object")
	 {
      var LastObject = webapp.__LastObjectClickedBeforePosting.value;
	  if(typeof document.all[LastObject] =="object")
		{
			if((typeof document.all[LastObject][0] !="object") || (typeof document.all[LastObject][0] != "undefined"))
			{
				document.all.item(LastObject).focus();
				if( document.all.item(LastObject).type != "select-one" )
					{
						document.all.item(LastObject).select();
					}
			}
		}
	 }
}
//=================================================================
function window_onresize()
{
	SetMainPageSize('resize')
}

//=================================================================
function  ExecuteActionOnEnter(ActionOnEnter,ParamStr)
 {
   //  Save clicked Object name 
   if(typeof webapp.__LastObjectClickedBeforePosting =="object")
	 {
      webapp.__LastObjectClickedBeforePosting.value = event.srcElement.name; 
     }
   if(event.keyCode=="13")
	{
			event.returnValue = false;
			executeaction(ActionOnEnter,ParamStr);
			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;
		}
	//"."= 190; ","=188; "-" = 189; "Num -" = 110; "/" = 191; Left= 37; Up= 38; Right= 39; Down = 40
    var DecimalPointCode = "190;"; //"."
    if (GetPageParam("__SYSTEM_CLIENT_DECIMAL_POINT") == ",")
    {
        DecimalPointCode= "188;"; // ","
    }
    
    //    SYSTEM_CLIENT_DECIMAL_POINT
    //    SYSTEM_CLIENT_THOUSAND_SEPARATOR
    //    SYSTEM_CLIENT_FLOAT_DECIMAL_PLACES
    //    SYSTEM_CLIENT_EXCHANGE_DECIMAL_PLACES
	var AllNumbers = new String (";37;38;39;40;36;35;13;8;45;46;48;49;50;51;52;53;54;55;56;57;96;97;98;99;100;101;102;103;104;105;110;189;109;")
    AllNumbers = AllNumbers + DecimalPointCode
	var lFound
	lFound  = AllNumbers.search(";" + event.keyCode)
	if (lFound == -1)
	{
	    event.returnValue = false;	
	    //alert( event.keyCode)
	}
	else
	{
		event.returnValue= true;
		//alert( event.keyCode)
	}
}
function noenter() 
{
  return !(window.event && window.event.keyCode == 13); 
}

