// print functions
var func_before_print="";
var func_after_print="";
var PRINT_AF_DEBUG=false;

var IsIE = (navigator.userAgent.indexOf("MSIE") != -1);
var IsFF = (navigator.userAgent.indexOf("Firefox") != -1);
var IsChrome = (navigator.userAgent.indexOf("Chrome") != -1);
var IsSafari = (navigator.userAgent.indexOf("Safari") != -1);
var IsOpera = (navigator.userAgent.indexOf("Opera") != -1);

/* ===== PROTOTYPE SECTION FOR ALL BROWSERS ===== */

//String.prototype.trim = function() {return this.replace(/^\s+|\s+$/,'');};
String.prototype.trim = function() {return this.replace(/^\s+|\s+$/g,'');};
String.prototype.replaceAll = function(search, replace)
{
	return this.split(search).join(replace);
}
 
 //--------SECTION FOR OBJECT DATE ------------------
 
 Date.prototype.msPerDay = 1000 *60 *60 *24;

//Clone the current date object
 Date.prototype.copy = function()
 {
	return new Date(this.getTime());
 };
 
 //Clear the time information
 Date.prototype.clearTime=function()
 {
	this.setHours(0);
	this.setMinutes(0);
	this.setSeconds(0);
	this.setMilliseconds(0);
	return this;
 };
 
 //return last day of month (from 1-31) 
 Date.prototype.lastDay=function()
 {
	var d = new Date (this.getFullYear(), this.getMonth()+1,0);
	return d.getDate();
 }; 
 
 Date.prototype.getDiffDays=function(d)
 {
	var d2;
	if (arguments.length == 0)
		d2 = new Date();
	else if (d instanceof Date)
			d2 = new Date(d.getTime());
		 else if (typeof d == "string")
				d2 = new Date(d);
			  else
				if (arguments.length >=3)
				{
					var dte = [0,0,0,0,0,0];
					for (var i=0; i<arguments.length; i++)
					{
						dte[i] = arguments[i];
					}
					d2 = new Date (dte[0],dte[1],dte[2],dte[3],dte[4],dte[5]);
				}
				else if (typeof d == "number")
						d2 = new Date(d);
					 else
						return null;
	if (d2 =="Invalide Date")
		return null;
	
	d2.setHours(this.getHours(), this.getMinutes(), this.getSeconds(), this.getMilliseconds());
	var diff = d2.getTime() - this.getTime();
	return parseInt(diff / this.msPerDay);
 };
 
 Date.prototype.getDiffMonths=function(d)
 {
	if (arguments.length == 0)
	
		d2 = new Date();
	else if (d instanceof Date)
			d2 = new Date(d.getTime());
		 else if (typeof d == "string")
				d2 = new Date(d);
			  else
				if (arguments.length >=3)
				{
					var dte = [0,0,0,0,0,0];
					for (var i=0; i<arguments.length; i++)
					{
						dte[i] = arguments[i];
					}
					d2 = new Date (dte[0],dte[1],dte[2],dte[3],dte[4],dte[5]);
				}
				else if (typeof d == "number")
						d2 = new Date(d);
					 else
						return null;
	if (d2 =="Invalide Date")
		return null;
	
	var sDate, eDate;
	var d1 = this.getFullYear() * 12 + this.getMonth();
	var d2 = d.getFullYear() * 12 + d.getMonth();
	var sign;
	var months = 0;
	if (this == d)
		months = 0;
	else if (d1 == d2)
		 {
			//the same year and month
			months = (d.getDate() - this.getDate())/ this.lastDay();
		 }
		 else
		 {
			if (d1 <d2)
			{
				sDate = this;
				eDate = d;
				sign = 1;
			}
			else
			{
				sDate = d;
				eDate = this;
				sign = -1;
			}
			var sAdj = sDate.lastDay() - sDate.getDate();
			var eAdj = eDate.getDate();
			var adj = (sAdj + eAdj) / sDate.lastDay() - 1;
			months = (Math.abs(d2 - d1) + adj) * sign;
		 }
	return months;
	
		 
	


 };
 
 Date.prototype.addDays=function(d)
 {
	this.setDate(this.getDate() + d);
 };
 
 Date.prototype.addMonths=function(m)
 {
	var d = this.getDate();
	this.setMonth(this.getMonth() + m);
	if (this.getDate() < d)
		this.setDate(0);
 }; 
 
 Date.prototype.addYears=function(y)
 {
	var m = this.getMonth();
	this.setFullYear(this.getFullYear() + y);
	if (this.getMonth() < m)
		this.setDate(0);
 }; 
 
 //Return number of days since start of year
 Date.prototype.getYearDay=function(y)
 {
	var today = this.copy();
	today = today.clearTime();
	var tempDate = today.copy();
	
	//set start of year
	tempDate.setDate(1);
	tempDate.setMonth(0);
	return Math.round (( today.getTime() - tempDate.getTime()) / this.msPerDay/1000) + 1; // 1 jan is day 1	
 }; 
 
 
 //Add format() to Date
 Date.prototype.format=function(formatString)
 {
	var out = new String();
	var token = "";
	for (var i=0; i< formatString.length; i++)
	{
		if(formatString.charAt(i) == token.charAt(0))
		{
			token = token.concat(formatString.charAt(i));
			continue;
		}
		out = out.concat(this.convertToken(token));
		token = formatString.charAt(i);
	}
	return out + this.convertToken(token);
	
 }; 
 
 //internal call to map tokens to the date data
 Date.prototype.convertToken=function(str)
 {
	switch (str.charAt(0))
	{
		case "y":	//set year
			if (str.length > 2)
				return this.getFullYear();
			return this.getFullYear().toString().substring(2);
		
		case "d":	//set date
			return Date.zeroPad(this.getDate(), str.length);
		
		
	}
 }

 
 /* ===== END PROTOTYPE SECTION FOR ALL BROWSERS ===== */
	
function window_onbeforeprint()
{
	try
	{
		var oHttp=new ActiveXObject("Microsoft.XMLHTTP");
		window.status="Getting time from server...";
		oHttp.open("get", "../../utils/tools/time.aspx", false); 
		oHttp.send();
		if(oHttp.status==200)
		{
			var dataTime = "&nbsp;" + oHttp.responseText + "&nbsp;"; 
			
			if(document.getElementById("divPrintTime")!=null)
				document.getElementById("divPrintTime").innerHTML = dataTime;
			if(document.getElementById("divPrintTimeStar")!=null)
				document.getElementById("divPrintTimeStar").innerHTML = dataTime;
		}		
	}
	catch(e){}
	
	if(func_before_print!="")eval(func_before_print);
}

function window_onafterprint()
{
	if(PRINT_AF_DEBUG) return;
	if(func_after_print!="")eval(func_after_print);
}

//general functions
function fn_stock(pid)
{
	var url="dirstock.ashx?pid=" + pid + "&";
	fn_jscript(url);
}

function fn_pagedemo(id)
{  
}

function fn_open_foreign_paper_info(str)
{	
	var symbol=fn_search_encode(str);
	window.open("../../../info/abroad/abroaddetails.asp?symbol="+symbol+"&", "foreign", "toolbar=no,scrollbars=no,left=0,top=0,width=800,height=550,resizable=yes");
}

function fn_open_short_foreign_paper_info(str,RegionId)
{	
	var symbol=fn_search_encode(str);
	window.open("../../../info/abroad/abroaddetails.asp?symbol="+symbol+"&regionid="+RegionId+"&", "foreign", "toolbar=no,scrollbars=no,left=0,top=0,width=800,height=550,resizable=yes");
}

function fn_map(url) 
{
	 window.location.href  = url + "utils/tools/map.asp"; 
}

function fn_readCookie(name) 
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function fn_logout(AspSiteUrl)
{
	var oHttp;
	var browser;
	
	// url for logout from .NET
	var url = "../../zone/logout.aspx";
	var error;
	
	if (fn_readCookie("ASP.NET_SessionId") != null )
	{
		try
		{
			// code for Mozilla
			if (window.XMLHttpRequest)
			{
				oHttp = new XMLHttpRequest();
				browser = "Mozilla";
			}
			
			// code for IE
			if (window.ActiveXObject)
			{
				oHttp = new ActiveXObject("Microsoft.XmlHttp");
				browser = "IE";
			}
			
			if (oHttp != null)
			{
				oHttp.onreadystatechange=function(){CheckResponseLogout(oHttp,browser,AspSiteUrl);};
				oHttp.open("GET",url, true);
				oHttp.send(null);
			}
			else
			{
				window.location.href = AspSiteUrl + 'zone/logout.asp';
			}
		}
		catch(e)
		{ 
			error = e.description;
			window.status='הגדרות הדפדפן לא מתאימות לדרישות האתר, אנא פנה למוקד';
		}
	}
	else
		window.location.href = AspSiteUrl + 'zone/logout.asp';
}

function CheckResponseLogout(oHttp,browser,LogOutUrl)
{
	if(oHttp.readyState==4)
	{
		window.status=oHttp.status + " - " + oHttp.statusText;
		
		try
		{
			if(oHttp.status!=200) return;
				
			// logout from asp
			window.location.href = LogOutUrl + 'zone/logout.asp'; 			
		}
		catch(e)
		{
			window.status=e.description;
		}
	}
}

function fn_goto_alerts(url)
{ 
	window.open(url, 'Alerts', 'width=680,height=650,top=0px,left=0px');
}

function fn_open_pwd_settings() 
{ 
	window.open('../../../utils/tools/setpassword.asp','secsetwin','height=500,width=620,top=0,left=0,resizeable=1'); 
}

function fn_openbursagraph(pid)
{
	fn_jscript("../../utils/redirect/dirbursa.ashx?pid=" + pid + "&t=" + new Date() + "&");
	//window.open("../../info/graph/graphbursa.asp?pid=" + pid + "&", "bursagraph","top=0,left=0,height=715px,width=810px,scrollbars=yes,resizable=yes");
}

function fn_trade(pid, cmd, trade, evnt)
{
	if(cmd==null)
	{
		var ev = evnt.target || evnt.srcElement;
		cmd = (ev.offsetX >15)?1:2;
	}
	
	var url="dirtrade.ashx?pid=" + pid + "&cmd=" + cmd;
	if(trade!=null)
	{
		url=url + "&trade=" + trade;
	}
	url=url + "&t=" + new Date() + "&";
	fn_jscript(url);
}

function fn_trade_express(pid, cmd, ret)
{
	var url="../../trade/express/TradeOpen.aspx?pid=" + pid + "&cmd=" + cmd + "&ret="+ret+"&";
	window.location.href = url;
}

function fn_open_searchresult()
{
	window.open("../../utils/search/SearchResult.aspx","SearchResult","toolbar=no,left=0,top=0,width=600,height=662");
}

function fn_search(txtSearch, searchType, paperType, isMaof, RegionID, CountryID, BursaID)
{
	if(searchType==null)searchType=1;
	if(paperType==null) paperType=-1;
	if(isMaof==null)isMaof=0;
		
	if(!fn_checksearch(txtSearch)) return false;
	var txt=fn_search_encode(txtSearch);
	
	if (searchType=='5' || searchType=='6' || searchType=='7')
	{
		fn_jscript('../../net/searchengine.ashx?txt=' + txt + "&rid=" + RegionID + "&cid=" + CountryID + "&bid=" + BursaID + "&");
		return true;
	}
	if ((RegionID=='0') || (searchType!='5'))
	{
		window.open("../../utils/search/searchresults.asp?word=" + txt + "&type="+searchType+"&IsMaof="+isMaof+"&PaperType="+paperType+"&", "SrchRes", "toolbar=no,left=0,top=0,width=450,height=250");
		return true;
	}
	
	return true;
}

function fn_checksearch(str, fnc)
{
	if(!fnc) fnc = "alert";
	var invalidChars=".,-+_%", badchr;
	
	if (str.length==0) 
	{
		eval(fnc + "('הכנס טקסט לחיפוש');"); 
		return false;
	}
	if(str.length==1)
	{
		for(var i=0;i<invalidChars.length;i++)
		{
			badchr=invalidChars.charAt(i);
			if(str.indexOf(badchr,0) > -1)
			{
				eval(fnc + "('טקסט לא חוקי לחיפוש');")
				return false;
			}				  
		}
	}
	return true;		
}

function fn_searchadv()
{
	window.open('../../../utils/search/searchadv.asp', "advsrch", "toolbar=no,left=0,top=0,width=350,height=320")
}

function fn_open_search_for_calc(st, url)
{
	url = (url==undefined) ? "../../" : url;
	
//	window.open(url + 'utils/search/searchcalc.asp?calc_type=' + st + '&', 'calcsearch', 'top=0,left=0');
	window.open(url + 'utils/search/searchcalc.aspx?calc_type=' + st + '&', 'calcsearch', 'top=0,left=0');
	
}
function fn_open_search_for_calc_Net(st, url)
{
	url = (url==undefined) ? "../../" : url;
	window.open(url + 'utils/search/searchcalc.aspx?calc_type=' + st + '&', 'calcsearch', 'top=0,left=0');
	
}
function fn_search_encode(str)
{
 var enc='';
 
	for(var i=0; i<str.length; i++) { enc+=str.charCodeAt(i,1) + "_"; }
	return enc;
}

function fn_open_makam_calc(pid, url)
{
	if(!pid)
		fn_open_search_for_calc('pop_makam', url);
	else
		{window.open('../../../utils/tools/calc_makam.asp?pid=' + pid + '&', 'mk_calc', 'top=0,left=0,width=600,height=390');}
}

function fn_open_makam_calc_Net(pid, url)
{
/*	if(!pid)
		fn_open_search_for_calc('pop_makam', url);
	else
		window.open(url + 'utils/tools/calc_makam.asp?pid=' + pid + '&', 'mk_calc', 'top=0,left=0,width=600,height=390');
*/
	if(!pid)
		fn_open_search_for_calc('pop_makam', url);
	
	else
	{
		url = (url==undefined) ? "../../" : url;
		window.open(url + 'utils/tools/calc_makam.aspx?pid=' + pid + '&', 'mk_calc', 'top=0,left=0,width=600,height=390');	
	}	
}

function fn_open_option_calc(pid, isShow, url)
{	
	if(!pid)
		fn_open_search_for_calc('pop_maof', url);
	else
		window.open('../../../utils/tools/calc_option.asp?opid=' + pid + '&isShow=' + isShow + '&', 'op_calc', 'top=0,left=0,width=600,height=530');
}

function fn_open_option_calc_Net(pid, isShow, AspSiteName)
{
	if(!pid)
		fn_open_search_for_calc('pop_maof', AspSiteName);
	else
	{
		str = AspSiteName + "utils/tools/calc_option.asp?opid=" + pid + "&isShow=" + isShow + "&";		
		window.open(str, 'op_calc', 'top=0,left=0,width=600,height=530');
	}	
}

var excelDownloadUrl = '';
function fn_download_excel(url)
{
	excelDownloadUrl = url;
	if(url=='')
	{
		alert("לא נמצאו נתונים");
		return;
	}
	
	var cook=fn_get_cookie("CC_Msg");
	var IsOK;
 
	if(cook.toUpperCase()=="NO")
	{
		window.location.href = excelDownloadUrl;
	}
	else
	{
		// no callback needed.
		fn_ShowModalDialog("../../netutils/excel/excelwarning.aspx",500,255,"ייצוא קובץ ל-Excel","",false,null);
	}
}

function fn_get_cookie(sName)
{
  // cookies are separated by semicolons
  var aCookie = document.cookie.split("; ");
  for (var i=0; i < aCookie.length; i++)
  {
    // a name/value pair (a crumb) is separated by an equal sign
    var aCrumb = aCookie[i].split("=");
    if (sName == aCrumb[0]) 
      return unescape(aCrumb[1]);
  }

  // a cookie with the requested name does not exist
  return "";
}

function fn_show_ask(val)
{
	switch(val.toString())
	{
		case '0':	//	No/Time's up
			window.location.href = "../../../zone/logout.asp";
			break;
		case '1':	//	Yes
			window.location.reload(true);
			break;
		case '2':	//	X	(continue till time's up)
			return;
		default:
			return;
	}	
}

function fn_trim(st)
{
	return st.replace(/ /g, '');
}

function fn_open_declaration(base)
{
// TODO: ASPX
	var w=window.open(base + 'trade/inc/cover_declaration.asp?', 'declaration','left=0px,top=0px,width=500px,height=248px,resizable =1');	
	//var w=window.open(/LTIASP/trade/inc/cover_declaration.asp?', 'declaration','left=0px,top=0px,width=500px,height=248px,resizable =1');	
	
	w.focus();
}

function fn_help(key)
{
	var w=window.open("../../utils/redirect/dirhelp.aspx?type=2&key=" + key + "&", "itemhelp", "left=0,top=0,width=500,height=200,resizable=yes,scrollbars=yes"); 
	w.focus();
}

function fn_helpforpage(key)
{
	var w=window.open("../../utils/redirect/dirhelp.aspx?type=1&key=" + key + "&", "pagehelp", "left=0,top=0,width=762,height=602,resizable=yes,scrollbars=yes"); 
	w.focus();
}

function fn_helpsite(key)
{
	var w=window.open("../../utils/redirect/dirhelp.aspx?type=3&key=" + key + "&", "sitehelp", "left=0,top=0,width=762,height=602,resizable=yes,scrollbars=yes"); 
	w.focus();
}

function open_graph_compare(url,id, period)
{
	if(id==1334)id=198;
	var str = url + "info/graph/graphcompare.asp?pid=" + id + "&pdb_cbo_prd=" + period + "&";
	window.open(str, 'graph_comp', 'top=0,left=0,width=700,height=600,status=0,scrollbars=1');
}

// TODO: remove function
function show(id, url)
{
	var str = url + "info/stock/stockdetails.asp?group=14000&menu=maof&item=mf_dt&inp_pid=" + id + "&";
	window.location.href = str;
}

function fn_popup(key)
{
	var src="../../utils/redirect/dirlink.aspx?key=" + key + "&type=4&";
	
	if(arguments.length>1)
	{
		for(var i=1; i<arguments.length; i++)
		{
			src+="p" + (i-1) + "=" + arguments[i] + "&";
		}
	}
	fn_jscript(src);	
}
function fn_link(key)
{
	var src="../../utils/redirect/dirlink.aspx?key=" + key + "&type=1&";
	fn_jscript(src);	
}

function fn_jscript(src)
{
	var j = document.createElement("script");
	j.type = "text/javascript";
	j.name="js" + Math.random();
	j.src=src;
	document.body.insertBefore(j, null);		
}

function fn_opentradeinfo(id, type)
{	
	if (window.screen.availHeight<=600)	
		window.open('../../../trade/ppr/addinfo.asp?inp_pid=' + id + '&inp_tid=' + type + '&', 'trade_info','top=0,left=0,width=365,height=510,scrollbars=yes,resizable=yes,status=no');
	else
		window.open('../../../trade/ppr/addinfo.asp?inp_pid=' + id + '&inp_tid=' + type + '&', 'trade_info','top=0,left=0,width=365,height=660,scrollbars=yes,resizable=yes,status=no');
}

function fn_openmaoftradeinfo(id,type)
{
	if (window.screen.availHeight<=600)	
		window.open('../../trade/maof/MaofAddInfo.aspx?inp_pid=' + id + '&inp_tid=' + type + '&', 'trade_info','top=0,left=0,width=365,height=510,scrollbars=yes,resizable=yes');
	else
		window.open('../../trade/maof/MaofAddInfo.aspx?inp_pid=' + id + '&inp_tid=' + type + '&', 'trade_info','top=0,left=0,width=365,height=660,scrollbars=yes,resizable=yes');
}

function fn_map_local(url)
{
	fn_map(url);
}

function getInternetExplorerVersion()
{
	var rv = -1;
	if(navigator.appName == 'Microsoft Internet Explorer')
	{
		var ua = navigator.userAgent;
		var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
		if(re.exec(ua)!=null)
			rv = parseFloat(RegExp.$1);
	}
	return rv;
}

function fn_identifybrowser()
{
	var browser = window.navigator.appName.toUpperCase();
	
	if(browser)
	{
		if(browser.indexOf("MICROSOFT") != -1)
			return "ie";
		
		return "dom";
	}
}

function fn_getxmlhttp()
{
	var browser=fn_identifybrowser();
	
	try	
	{
		switch(browser)
		{
			case "ie":
				return new ActiveXObject("Microsoft.XmlHttp");
				break;
				
			case "dom":
				return new XMLHttpRequest();
				break;
				
			default:
				return null;
		}
	}
	catch(e)
	{ 
		window.status=e.description;
		return null;
	}
}
function fn_windowOpen(lnk)
{
	window.open(lnk, "_blank");	
}

function fn_gettimestamp()
{
	var d = new Date();
	return d.getHours() + "_" + d.getMinutes() + "_" + d.getSeconds() + "_" + d.getMilliseconds();
}

function fn_getasyncdata(method, url, params, callback)
{
	try	
	{
		var oHttp=fn_getxmlhttp();
		
		if (oHttp != null)
		{
			oHttp.onreadystatechange=function(){fn_checkresponse(oHttp, callback);};
			oHttp.open(method.toUpperCase(), url, true);
			
			if(method.toUpperCase()=="POST")
			{
				oHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
				
			}
			oHttp.setRequestHeader("CharSet","windows-1255");
			oHttp.send(params);
			
		}
	}
	catch(e)
	{ 
		window.status=e.description;
	}
}

function fn_checkresponse(oHttp, callback)
{
	if(oHttp.readyState==4)
	{
		window.status=oHttp.statusText;
		
		//try
		{
			if(oHttp.status  == 200)
				eval(callback + "(oHttp)");
			else
			{
				//var w=window.open("", "_blank");
				//w.document.write(oHttp.responseText);
			}
		}
		//catch(e)
		//{
		//	window.status=e.description;
		//}	
	}
}

function fn_posneg(val)
{
	if(parseFloat(val)>0) return "positive";
	if(parseFloat(val)<0) return "negative";
	return "netrual";
}

function GetHtmlData(url, div, addFormValues)
{
	var e = document.getElementById("frmMain").elements;
	var browser;
	var error = "";
	
	var oHttp=null;


	if (addFormValues)
	{
		// check '?' and '&' in url
		if(url.indexOf("?")==-1)
			url+="?";
		else
			if(url.indexOf("&", url.length-1)==-1) url+="&";

		for(var i=0; i<e.length; i++) url+=(e[i].name + "=" + e[i].value + "&");
		
	}
	else
	{
		// if parameters were passed
		if(url.indexOf("?") != -1)
			{
				// just add & for url 
				if(url.indexOf("&", url.length-1)==-1) url+="&";
			}
	}
	

	try
	{
		oHttp = fn_getxmlhttp();
		
		if (oHttp != null)
		{
			oHttp.onreadystatechange=function(){CheckResponse(oHttp, div);};
			oHttp.open("GET",url, true);
			oHttp.send(null);
		}
		else
		{
			alert("Your browser doen't support XMLHTTP.")
		}
	}
	catch(e)
	{ 
	error = e.description;
	window.status='הגדרות הדפדפן לא מתאימות לדרישות האתר, אנא פנה למוקד';
	}
}

function CheckResponse(oHttp, oDiv)
{
	var error = "";
	var browser=fn_identifybrowser();
	
	if(oHttp.readyState==4)
	{
		window.status=oHttp.statusText;
		try
		{
			if(oHttp.status  == 200)
			{
				UpdateDivByXmlHttpResults(oHttp,oDiv);
			
			// on send after event
				if (document.getElementById("oDivXmlHttp"))
				{
					var onsendafter;
					if (browser.toLowerCase()=="ie")
						onsendafter = document.getElementById("oDivXmlHttp").onsendafter;
				
					if (browser == "dom")
					onsendafter = document.getElementById("oDivXmlHttp").attributes["onsendafter"].value;
					
					if(onsendafter)
						eval(onsendafter + "()");
				}
			}
			else
			{
				var w=window.open("", "_blank");
				w.document.write(oHttp.responseText);
			}
		}
		catch(e)
		{
			window.status='הגדרות הדפדפן לא מתאימות לדרישות האתר, אנא פנה למוקד';
			error = e.description;
		}
			
	}
}

function UpdateDivByXmlHttpResults(oHttp, oDiv)
{
	var parser;
	var respText;
	var doc;
	var browser=fn_identifybrowser();
		
	// IE 
	respText = oHttp.responseText.replace(/[\n\r\t]/g,"");
	respText =  "<?xml version='1.0' encoding='windows-1255'?>"+
				"<htmlsections>" +
				"<htmlsection><![CDATA[" + 
				respText + 
				"]]>" +
				"</htmlsection>" +
				"</htmlsections>";
	
	if (browser.toLowerCase() == "ie")
	{
		doc = new ActiveXObject("Microsoft.XMLDOM");
		doc.async = "false";
		doc.loadXML(respText);
	}
						
	if(browser == "dom")
	{
		parser  = new DOMParser();
		doc = parser.parseFromString(respText,"text/xml");
	}
	
	var docElem = doc.documentElement;
	
	if (docElem != null)
	{
		if (docElem.childNodes[0] != null)
		{
			if (docElem.childNodes[0].childNodes[0] != null)
			{
				if (oDiv && docElem.childNodes[0].childNodes[0].nodeValue != null )
					oDiv.innerHTML = docElem.childNodes[0].childNodes[0].nodeValue;
				
			}
		}
	}
	
}
// function added for Mozilla compatibility
// 16/04/2007	
modalWin = null;
function xShowModalDialog( sURL, vArguments, sFeatures ) 
    { 
    if (sURL==null||sURL=='') 
    { 
        alert ("Invalid URL input."); 
        return false; 
    } 
    if (vArguments==null||vArguments=='') 
    { 
        vArguments=''; 
    } 
    if (sFeatures==null||sFeatures=='') 
    { 
        sFeatures=dFeatures; 
    } 
    
    sFeatures = sFeatures.replace(/ /gi,''); 
    aFeatures = sFeatures.split("#"); 
    sWinFeat = "directories=0,menubar=0,titlebar=0,toolbar=0,"; 
    
    for ( x in aFeatures ) 
    { 
    try
    {
        aTmp = aFeatures[x].split(":"); 
        sKey = aTmp[0].toLowerCase(); 
        sVal = aTmp[1]; 
        switch (sKey) 
        { 
            case "dialogheight": 
                sWinFeat += "height="+sVal+","; 
                pHeight = sVal; 
                break; 
            case "dialogwidth": 
                sWinFeat += "width="+sVal+","; 
                pWidth = sVal; 
                break; 
            case "dialogtop": 
                sWinFeat += "screenY="+sVal+","; 
                break; 
            case "dialogleft": 
                sWinFeat += "screenX="+sVal+","; 
                break; 
            case "resizable": 
                sWinFeat += "resizable="+sVal+","; 
                break; 
            case "status": 
                sWinFeat += "status="+sVal+","; 
                break; 
            case "center": 
                if ( sVal.toLowerCase() == "yes" ) 
                { 
                    sWinFeat += "screenY="+((screen.availHeight-pHeight)/2)+","; 
                    sWinFeat += "screenX="+((screen.availWidth-pWidth)/2)+","; 
                } 
                break; 
        } 
    }
    catch(e){}
    } 
    modalWin=window.open(String(sURL),"",sWinFeat); 
    if (vArguments!=null&&vArguments!='') 
    { 
        modalWin.dialogArguments=vArguments; 
    } 
 }
 
  // Function added  for Mozilla use
// 16/04/2007
function checkFocus() 
{ 
    if(window.focus)
    {
		if (modalWin!=null)
		{
			if (!modalWin.closed) 
			{ 
				self.blur(); 
				try
				{
					modalWin.focus(); 
				}
				catch(e)
				{
				}
			}
		}
	} 
} 

function fn_isnumeric(value)
{
	if(!value)return false;
	// I use this function like this: if (isNumeric(myVar)) { } 
	// regular expression that validates a value is numeric 
	var RegExp = /^[-+]?\d*\.?\d+(?:[eE][-+]?\d+)?$/; 
	// compare the argument to the RegEx 
	// the 'match' function returns 0 if the value didn't match 
	var result = value.match(RegExp);
	if ((!result) ||(!result[0]))
		return false;
	else
		return result[0]!= "0";
}

function fn_cboonchange(cbo)
{
	if(cbo.issend==1 || cbo.issend==null)
	{
		if(cbo.onchangeaction)
			eval(cbo.onchangeaction);
		else
			eval(cbo.value);
			
		if(cbo.isreset) cbo.options[0].selected=true;
	}
	else
		cbo.issend=1;
}

function fn_cbokeypressed(cbo, evnt)
{
	evnt=evnt || window.event;
	if(evnt.keyCode==13)
	{
		cbo.issend=1;
		fn_cboonchange(cbo);
	}
	else
		cbo.issend=0;
}

function fn_get(id)
{
	return document.getElementById(id);
}

/* CHECK VALIDATION FLOAT/INTEGER VALUE*/

function fn_checkinteger(event, oTxt)
{
 var browser = fn_identifybrowser();
 var KeyCode;
 var unsigned;

	switch(browser)
	{
	case "ie":
		KeyCode=event.keyCode;
		unsigned = oTxt.unsigned;
		break;

	case "dom":
		KeyCode = event.charCode;
		if (KeyCode == 0) KeyCode = event.keyCode;
		unsigned = oTxt.attributes["unsigned"].nodeValue;
		break;
	}
	
	//Don't change order of the if operators !!!!
	//delete or backspace pressed
	if(KeyCode==8) return;
		
	//prevet zero on the first position									
	if(KeyCode==48 && (oTxt.value=='' || oTxt.value=='-')) 
	{
		switch(browser)
		{
		case "ie":
			event.returnValue=false;
			return;
		
		case "dom":
			event.preventDefault();
			return;
		}
	}
		
	if((unsigned + '').toLowerCase()=='true' && KeyCode==45)
	{
		switch(browser)
		{
		case "ie":
			event.keyCode=0;
			return;

		case "dom":
			event.preventDefault();
			event.stopPropagation();
			return;
		}
	}
	else
	{
		//prevent minus on the middle place and more than one minus
		if((oTxt.value!='' || oTxt.value.indexOf('-',0)!=-1) && KeyCode==45)
		{
			switch (browser)
			{
			case "ie":
				event.keyCode=0;
				return;
				
			case "dom":
				event.preventDefault();
				event.stopPropagation();
				return;
			}
		}
	}
		
	//prevent non-numeric symbols
	if((KeyCode<48 || KeyCode >57) && KeyCode !=45)
	{
		switch (browser)
		{
		case "ie":
			event.returnValue=false;
			return;
			
		
		case "dom":
			event.preventDefault();
			return;
		}
	}
}
function fn_checkintegerCrossBrowser(evnt)
{
	evnt=evnt || window.event;
	var oTxt = evnt.target || evnt.srcElement;
	ValueHolder=oTxt.value;
	var KeyCode = GetKeyCode(evnt);
	var unsigned = oTxt.getAttribute("unsigned")
	var range=GetRange();
	var pos = GetPos(oTxt, range);


	//Don't change order of the if operators !!!!


	//delete or backspace pressed
	if(KeyCode==KeyCode_Backspace) return;	
	
	// check all text replacing
	if(IsIE && range.text.length==ValueHolder.length) ValueHolder='';
	
									
	//prevent zero on the first position									
	if(KeyCode==KeyCode_0 && (pos==0 || (pos==1 && oTxt.value == "-")) ) 
	{
		fn_CancelKeyCode(evnt);
		return;
	}	
	if((unsigned + '').toLowerCase()=='true' && KeyCode==KeyCode_Minus)
	{
		fn_CancelKeyCode(evnt);
		return;
	}	
	else
	{
		//prevent minus on the middle place and more than one minus
		if((pos!=0 || oTxt.value.indexOf('-',0)!=-1) && KeyCode==KeyCode_Minus)
		{
			fn_CancelKeyCode(evnt);
			return;
		}
		//prevent non-numeric symbols
		if(( evnt.ctrlKey == false && (KeyCode<KeyCode_0 || KeyCode >KeyCode_9))  
			&& KeyCode != KeyCode_Minus
			 && KeyCode != KeyCode_Tab 
			 && KeyCode != KeyCode_Delete1
		  )
		{
			fn_CancelKeyCode(evnt);
			return ;
		}
	}	

}
function GetKeyCode(evnt)
{
	KeyCode = evnt.keyCode || evnt.charCode || evnt.which;
	if (KeyCode == KeyCode_DecimalPoint && 
		(  (IsFF    && evnt.keyCode == KeyCode_DecimalPoint && evnt.charCode == 0)
		 ||(IsOpera && evnt.keyCode == KeyCode_DecimalPoint && evnt.which    == 0)
		)
	   )
		KeyCode = KeyCode_Delete1;
	return KeyCode;
}

function GetRange()
{
	var range =100;
	if (window.getSelection)
	{
		var selection = window.getSelection();
		if (selection.rangeCount >0)	//FF, Opera
			return selection.getRangeAt(0);
		else
			return null;
	}
	else	//IE
	{
		if (window.document.selection)
		{
			return window.document.selection.createRange();
		}
		else	//Browser not support selections
			return null;
	}

}	
function GetPos(oTxt, range)
{
	if (!oTxt) return 0;
	if (IsIE)
	{
		if (range)
			 return Math.abs(range.moveStart("character", -1000000));
		else return 0;
	}
	else
	{
		if(oTxt.selectionStart || oTxt.selectionStart== "0")
			return oTxt.selectionStart;
		else
			return 0;
	}
		
}

function fn_CheckPressNumber(evnt, checkpastNumber)
{
	if(GetCmd() == "1")
	{
		fn_checkintegerCrossBrowser(evnt);
	}
	else
	{
		//checkNumber
		eval(checkpastNumber);

	}
}
function fn_CheckPasteNumber(evnt, checkNumber)
{
	evnt=evnt || window.event;
	if(GetCmd() == "1")
	{
		fn_checkpasteintegerCrossBrowser(evnt);
	}
	else
	{
		eval(checkNumber);
	}
}
	
function fn_checkpasteintegerCrossBrowser(evnt)
{
	evnt=evnt || window.event;
	var oTxt = evnt.target || evnt.srcElement;
	var unsigned = oTxt.getAttribute("unsigned")
	var clipboard = window.clipboardData || evnt.clipboardData
	if (!clipboard) return;
	var CBData= (IsIE ? clipboard.getData("Text") : clipboard.getData("text/plain"));
	if(oTxt.maxLength)
		max=oTxt.maxLength;
		
	if(!parseFloat(CBData) || CBData.length > max)
	{
		fn_CancelPastCode(evnt, clipboard);
		return;
	}
	
	if(CBData.indexOf('.',0)!=-1)
	{
		clipboard.clearData("Text");
		return;
	}
	
	var val=Math.round(CBData);
	
	if ((unsigned + '').toLowerCase()=='true' && isNaN(val))
	{
		clipboard.clearData("Text");
		return;
	}
	
	if((unsigned + '').toLowerCase()=='true' && val<0)
		clipboard.clearData("Text");
		
}

function fn_checkpasteinteger(event,evtElement)
{
	var CBData=window.clipboardData.getData("Text");
	var unsigned;
	var browser = fn_identifybrowser();
	
	switch(browser)
	{
	case "ie":
		unsigned = evtElement.unsigned;
		break;

	case "dom":
		unsigned = evtElement.attributes["unsigned"].nodeValue;
		break;
	}
	var max=500;
	if(evtElement.maxLength)
		max=evtElement.maxLength;
		
	if(!parseFloat(CBData) || CBData.length > max)
	{
		window.clipboardData.clearData("Text");
		return;
	}
	
	if(CBData.indexOf('.',0)!=-1)
	{
		window.clipboardData.clearData("Text");
		return;
	}
	
	var val=Math.round(CBData);
	
	if ((unsigned + '').toLowerCase()=='true' && isNaN(val))
	{
		window.clipboardData.clearData("Text");
		return;
	}
	
	if((unsigned + '').toLowerCase()=='true' && val<0)
		window.clipboardData.clearData("Text");
		
	
	//else
		//window.clipboardData.setData("Text", val.toString());	
}

function fn_checkfloatCrossBrowser(evnt)
{
	evnt=evnt || window.event;
	ValueHolder=evnt.srcElement.value;
	var KeyCode = GetKeyCode(evnt);
	var oTxt=evnt.srcElement;
	var unsigned = oTxt.getAttribute("unsigned")
	var round = oTxt.getAttribute("round")


	//Don't change order of the if operators !!!!

	//delete or backspace pressed
	if(KeyCode==KeyCode_Backspace) return;									
	//prevent number of zero before point
	if((oTxt.value=='0' || oTxt.value=='-0') && KeyCode!=KeyCode_DecimalPoint)
	{
		fn_CancelKeyCode(evnt);
		return;
	}
	//prevent point on the first place and more than one point
	if((oTxt.value=='' || oTxt.value.indexOf('.',0)!=-1) && KeyCode==KeyCode_DecimalPoint)
	{
		fn_CancelKeyCode(evnt);
		return;
	}
	if((unsigned + '').toLowerCase()=='true' && KeyCode==KeyCode_Minus)
	{
		fn_CancelKeyCode(evnt);
		return;
	}
	else
	{
		//prevent minus on the middle place and more than one minus
		if((oTxt.value!='' || oTxt.value.indexOf('-',0)!=-1) && KeyCode==KeyCode_Minus)
		{
			fn_CancelKeyCode(evnt);
			return;
		}
	}
	//prevent non-numeric symbols
	if((KeyCode<KeyCode_0 || KeyCode >KeyCode_9) && KeyCode !=KeyCode_DecimalPoint && KeyCode !=KeyCode_Minus && KeyCode != KeyCode_Tab  && KeyCode != KeyCode_Delete1)
	{
		fn_CancelKeyCode(evnt);
		return;
	}
}	

function fn_checkpastefloat(evnt)
{
	evnt=evnt || window.event;
	var CBData=window.clipboardData.getData("Text");
	
	if(!parseFloat(CBData) || CBData.length>9)
		window.clipboardData.clearData("Text");
	else
		window.clipboardData.setData("Text", parseFloat(CBData).toString());
}	
function fn_checkpastefloatCrossBrowser(evnt)
{
	evnt=evnt || window.event;
	var CBData= (IsIE ? window.clipboardData.getData("Text") : evnt.clipboardData.getData("text/plain"));
	
	if(!parseFloat(CBData) || CBData.length>9)
		window.clipboardData.clearData("Text");
	else
		window.clipboardData.setData("Text", parseFloat(CBData).toString());
}	

function fn_checkdecimalpositions(evnt)
{
	evnt=evnt || window.event;
	ValueHolder=evnt.srcElement.value;
	var KeyCode = evnt.keyCode || evnt.charCode || evnt.which;
	var oTxt=evnt.srcElement;
	var unsigned = oTxt.getAttribute("unsigned")
	var round = oTxt.getAttribute("round")
	if (round != null && round !=0)
	{
		// check decimal position
		var ValueToCheck = oTxt.value;
		if (ValueToCheck.indexOf(".")!=-1)
		{
			var ValueToCheck = ValueToCheck.substring(ValueToCheck.indexOf(".")+1);
			PosLength = ValueToCheck.length;
			if (PosLength > round)
			{
				oTxt.value = parseFloat( ValueHolder).toFixed(2) ;
			//	fn_CancelKeyCode(evnt);
			}

			
		}
	}	
}
function fn_IsValidSearchCrossBrowser(evnt)
	{
		evnt=evnt || window.event;
		var keyCode = evnt.keyCode || evnt.charCode || evnt.which;
		
		if (keyCode == KeyCode_SpaceBar || keyCode == KeyCode_PageDown || keyCode == KeyCode_SingleQuote ||
			keyCode == KeyCode_Delete || keyCode == KeyCode_LeftArrow || keyCode == KeyCode_RightArrow || 
			keyCode == KeyCode_DownArrow || keyCode == KeyCode_Insert || keyCode == KeyCode_Backspace || 
			(keyCode>=KeyCode_0 && keyCode<=KeyCode_9) || 
			(keyCode>=KeyCode_a && keyCode<=KeyCode_z) || 
			(keyCode>=KeyCode_Alef && keyCode<=KeyCode_Tav) || keyCode == KeyCode_Enter ||
			keyCode == KeyCode_ESC)
		{
			return true;
		}
		else
		{
			if (keyCode != KeyCode_Shift && keyCode != KeyCode_Ctrl)
			{
				fn_CancelKeyCode(evnt);
				return false;
			}
		}
	}
/* CHECK VALIDATION FLOAT/INTEGER/TRADENUMBER/SEARCH VALUE*/

function fn_search_main(str, RegionID)
{
	if(fn_checksearch(str))
	{
		var result = fn_search_encode(str);
		fn_jscript('../../utils/searchengine.ashx?txt=' + result + "&rid=" + RegionID + "&");
	}
	else
		return false;
}	

function fn_asproot()
{
	return "../../../";
}

function fn_netroot()
{
	return "../../";
}

var var_stock_func="fn_stock";
var var_open_search_result="fn_open_searchresult";

function setPaperData(pid, cmd)
{

}

function fn_trade_new(pid,cmd)
{	
	if(cmd==null && IsIE)
	{
		if(window.event.offsetX >15)
			cmd=1;
		else
			cmd=2;
	}
		
	window.location.href="../../../utils/redirect/dirtrade.asp?pid=" + pid + "&cmd=" + cmd + "&";
}

function fn_showbulls(page, id, sector, geo, hold)
{
	var p='';
	
	if(id!=null) p=p + '&idx=' + id;
	if(sector!=null) p=p + '&sector=' + sector;
	if(geo!=null) p=p + '&geo=' + geo;
	if(hold!=null) p=p + '&hold=' + hold;

	window.open("../../utils/redirect/dirbulls.ashx?page=" + page + p + "&", "bulls", "toolbar=no,menubar=no,left=0,top=0,width=830,height=550,location=no,resizable=yes,scrollbars=yes");
}	

function fn_abroadnews(abr)
{
	var group_abr;
	if(abr == "Usa")
		group_abr = 18000;
	if(abr == "Europe")
		group_abr = 19000;
		
	document.location="../../abroad/usa/UsaNews.aspx?group=" + group_abr + "&amp;";
}

function fn_showsegmentationinfo(SegInfoLink,sWidth,sHeight)
{
	var d=document.getElementById('divsigment');
	if(d)d.style.display = 'none';
	var w=window.open(SegInfoLink,null,'height='+ sHeight +',width='+sWidth +',status=no,toolbar=no,menubar=no,location=no');
	return false;
}
//region for trade
function ShowFltr(win)
{
	SetCntrVis("hidden",document.getElementsByTagName("select"));
	SetCntrVis("hidden",window.parent.document.getElementsByTagName("select"));
	var d = win.document.getElementById("FltrDiv");
	
	if(d) return;
	d = win.document.createElement("div");
	d.id = "FltrDiv";
	var h = win.document.body.scrollHeight;
	//if(h < win.screen.height) h = win.screen.height;
	//alert("d="+d);
	d.style.height = h + "px";
	d.className = "fltr";
	var i = win.document.createElement("img");
	i.src = "../../images/btn_buysell/progressbar.gif";
	i.id = "PrgImg";
	i.className = "IgnoreScroll";
	i.attachEvent("onclick",CancelProgress);
	//addEvent(i,'click',CancelProgress);

	with(i.style)
	{
		cursor = "pointer";
		zIndex = "101";
		position = "absolute";
		width = "120px";
		height = "22px";
		left = (win.screen.width / 2 - parseInt(width) / 2) + "px";
	}

	win.document.body.appendChild(d);
	win.document.body.appendChild(i);
	
	//win.document.body.scroll = "no";
}
function addEvent(obj, evType, fn)
{
	if (obj.addEventListener)
		return obj.addEventListener(evType, fn, false);
	else 
		return obj.attachEvent("on" + evType, fn);
}

function SetOuterHTML(el,str)
{
	if(!el) return;
	if(el.outerHTML)
	{
		el.outerHTML = "";
	}
	else
	{
		var range = document.createRange(); 
		range.setStartBefore(el); 
		var docFrag = range.createContextualFragment(str); 
		el.parentNode.replaceChild(docFrag,el);
	}
}

function HideFltr(win)
{	
	SetCntrVis("",document.getElementsByTagName("select"));
	SetCntrVis("",window.parent.document.getElementsByTagName("select"));
	
	var d = null;
	try	
	{
		 d = win.document.getElementById("FltrDiv");
	}
	catch(e){}
	
	if(!d)
	{
		d = document.getElementById("FltrDiv");
	}
	SetOuterHTML(d,"");
	if(win.document.body)
		win.document.body.scroll = "yes";
	HidePrgImg(win);
}

function CancelProgress()
{
	top.location.href = top.location.href;
}

function HidePrgImg(win)
{
	if(!win) win = top;
	var i = win.document.getElementById("PrgImg");
	SetOuterHTML(i,"")
}

function GetInnerText(el)
{
	if(el.innerText) return el.innerText;
	return el.textContent;
}

function SetInnerText(el,txt)
{
	if(el.innerText) el.innerText = txt;
	else el.textContent = txt;
}

function SetIfrSz(win,IfrId,ElId)
{		
	var d = win.document.getElementById(IfrId);
	var r = document.getElementById(ElId);
	if(!d || !r) return;
	r = r.getBoundingClientRect();
	var w = r.right - r.left;
	var h = r.bottom - r.top;
	with(d.style)
	{
		width = w + "px";
		height = h + "px"
		left = (win.screen.width / 2 - w / 2) + "px";
		top = win.document.body.scrollTop + 30 + "px";
	}
}

function SetCntrVis(val,ar, excludedCboId, excludedCboVal)
{
	if(!ar) ar = document.getElementsByTagName("select");
	for(var i = 0;i < ar.length;i++)
	{
		var elemID = ar[i].attributes["id"].value;
				
		if(excludedCboId != null && excludedCboId == elemID) 
			ar[i].style.visibility = excludedCboVal;
		else
			ar[i].style.visibility = val;
	}
}

function GetAlertAsync(oHttp)
{
	if(typeof(oHttp) == "string")
	{
		GetAlertIframe(oHttp);
		return;
	}
	var w = window.parent;
	if(w.document.getElementById("ermsg")) return;
	var d = w.document.createElement("div");
	d.id = "ermsg";
	//d.innerHTML = oRs(0);
	d.style.position = "absolute";
	d.style.zIndex = 1001;
	d.className = "IgnoreScroll";
//	d.style.top = (w.screen.height + w.document.body.scrollTop) / 2;
	d.style.left = (w.screen.width - 250) / 2;
	d.style.top = (w.screen.height - 250) / 2;
	
	var browser = fn_identifybrowser();
	// IE 
	if ( browser == "ie")
	{
		var oRs = new ActiveXObject("Adodb.Recordset");
		oRs.Fields.Append("he", 200, 100000);
		oRs.Open();
		oRs.AddNew();
		oRs(0).AppendChunk(oHttp.responseBody);
		d.innerHTML = oRs(0);
	}
	// Mozilla
	if (browser == "dom")
	{
		d.innerHTML = oHttp.responseText;
	}	

	w.document.body.appendChild(d);
	HidePrgImg();
}

function GetAlertIframe(url)
{
	if(top.document.getElementById("ermsg")) return;
	var d = top.document.createElement("div");
	d.id = "ermsg";
	d.style.position = "absolute";
	d.style.zIndex = 1001;
	d.className = "IgnoreScroll";
	d.style.left = (top.screen.width - 250) / 2;
	d.style.top = (top.screen.height - 250) / 2;
	var ifr = top.document.createElement("iframe");
	ifr.setAttribute("frameBorder","0");
	ifr.setAttribute("scrolling","no");
	url += "ifr=1&";
	ifr.setAttribute("src",url);
	ifr.setAttribute("id","errifr");
	d.appendChild(ifr);
	top.document.body.appendChild(d);
	HidePrgImg();	
}

function GetHorizCenter(el)
{
	var r = el.getBoundingClientRect();
	var w = r.right - r.left;
	return (screen.width - w) / 2;
}
function openReport(rep)
{
	window.open('../../utils/pdf/' + rep + '.pdf', 'sector', 'top=0,left=0,width=700,height=600,status=0,scrollbars=1');
}
//end region for trade

function GetEventTarget(evnt)
{
	if (evnt == null) return null;
	return evnt.target || evnt.srcElement;
}

function JSFormatNumber(num,decimalNum,bolLeadingZero,bolParens,bolCommas)
/**********************************************************************
	IN:
		NUM - the number to format
		decimalNum - the number of decimal places to format the number to
		bolLeadingZero - true / false - display a leading zero for
										numbers between -1 and 1
		bolParens - true / false - use parenthesis around negative numbers
		bolCommas - put commas as number separators.
 
	RETVAL:
		The formatted number!
 **********************************************************************/
{ 
    if (isNaN(parseInt(num))) return "NaN";

	var tmpNum = num;
	var iSign = num < 0 ? -1 : 1;		// Get sign of number
	
	// Adjust number so only the specified number of numbers after
	// the decimal point are shown.
	tmpNum *= Math.pow(10,decimalNum);
	tmpNum = Math.round(Math.abs(tmpNum))
	tmpNum /= Math.pow(10,decimalNum);
	tmpNum *= iSign;					// Readjust for sign
	
	
	// Create a string object to do our formatting on
	var tmpNumStr = new String(tmpNum);

	// See if we need to strip out the leading zero or not.
	if (!bolLeadingZero && num < 1 && num > -1 && num != 0)
		if (num > 0)
			tmpNumStr = tmpNumStr.substring(1,tmpNumStr.length);
		else
			tmpNumStr = "-" + tmpNumStr.substring(2,tmpNumStr.length);
		
	// See if we need to put in the commas
	if (bolCommas && (num >= 1000 || num <= -1000)) {
		var iStart = tmpNumStr.indexOf(".");
		if (iStart < 0)
			iStart = tmpNumStr.length;

		iStart -= 3;
		while (iStart >= 1) {
			tmpNumStr = tmpNumStr.substring(0,iStart) + "," + tmpNumStr.substring(iStart,tmpNumStr.length)
			iStart -= 3;
		}		
		tmpNumStr = tmpNumStr.replaceAll ("-,","-");		
	}

	// See if we need to use parenthesis
	if (bolParens && num < 0)
		tmpNumStr = "(" + tmpNumStr.substring(1,tmpNumStr.length) + ")";

	return tmpNumStr;		// Return our formatted string!
}


//region DateTime functions
		function js_CheckDates(val1,val2)
		{
			if (js_DateDiff(val1,val2) < 0 )
			{
				alert("תאריך סיום קטן מתאריך התחלה");
				return false;
			}
			else
				return true;
		}
		
		function js_DateDiff (val1,val2)
		{
			var toDate = GetDateByStandartFormat(val2) ;
			var prevDay=GetDateByStandartFormat(val1) ;
			//Get 1 day corresponding milliseconds
			var msInOneDay=1000*60*60*24;
			
			//return parseInt(toDate.getTime()-prevDay.getTime())/(msInOneDay));
			//Calculate difference btw the two dates, and convert to days
			return parseInt(toDate.getTime()-prevDay.getTime())/(msInOneDay);	
		}
		function js_DateDiff_Year (val1,val2)
		{
		
			var toDate = GetDateByFormat(val2,'dd/mm/yyyy') ;
			var prevDay=GetDateByFormat(val1,'dd/mm/yyyy') ;

			//Get total month
			var toDateMonth  =  toDate.getFullYear()*12 ;
			var prevDayMonth = prevDay.getFullYear()*12 ;
			
			//return parseInt(toDate.getTime()-prevDay.getTime())/(msInOneDay));
			//Calculate difference btw the two dates, and convert to years
			return toDateMonth - prevDayMonth;	
		}		
		function js_DateDiff_Month (val1,val2)
		{
		
			var toDate = GetDateByStandartFormat(val2) ;
			var prevDay=GetDateByStandartFormat(val1) ;

			//Get total month
			var toDateMonth  =  toDate.getFullYear()*12 +  toDate.getMonth();
			var prevDayMonth = prevDay.getFullYear()*12 + prevDay.getMonth();
			//Calculate difference btw the two dates, and convert to monthes
			return toDateMonth - prevDayMonth;	
		}			
		function js_DateDiff_Days(val1,val2)
		{	
			var toDate = GetDateByStandartFormat(val2) ;
			var prevDay=GetDateByStandartFormat(val1) ;
			
			//Get 1 day corresponding milliseconds
			var msInOneDay=1000*60*60*24;
			
			//return parseInt(toDate.getTime()-prevDay.getTime())/(msInOneDay));
			//Calculate difference btw the two dates, and convert to days
			return parseInt(toDate.getTime()-prevDay.getTime())/(msInOneDay);	

		}
		
		function GetDateByStandartFormat (dt)
		{
			var d = dt.split("/");
			var a = new Date();
			
			var dt1 =new Date(d[2],d[1]-1 ,d[0]);
			return dt1;
		}
		/*
 * Date Format 1.2.3
 * (c) 2007-2009 Steven Levithan <stevenlevithan.com>
 * MIT license
 *
 * Includes enhancements by Scott Trenda <scott.trenda.net>
 * and Kris Kowal <cixar.com/~kris.kowal/>
 *
 * Accepts a date, a mask, or a date and a mask.
 * Returns a formatted version of the given date.
 * The date defaults to the current date/time.
 * The mask defaults to dateFormat.masks.default.
 */

var dateFormat = function () {
	var	token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|"[^"]*"|'[^']*'/g,
		timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,
		timezoneClip = /[^-+\dA-Z]/g,
		pad = function (val, len) {
			val = String(val);
			len = len || 2;
			while (val.length < len) val = "0" + val;
			return val;
		};

	// Regexes and supporting functions are cached through closure
	return function (date, mask, utc) {
		var dF = dateFormat;

		// You can't provide utc if you skip other args (use the "UTC:" mask prefix)
		if (arguments.length == 1 && Object.prototype.toString.call(date) == "[object String]" && !/\d/.test(date)) {
			mask = date;
			date = undefined;
		}

		// Passing date through Date applies Date.parse, if necessary
		date = date ? new Date(date) : new Date;
		if (isNaN(date)) throw SyntaxError("invalid date");

		mask = String(dF.masks[mask] || mask || dF.masks["default"]);

		// Allow setting the utc argument via the mask
		if (mask.slice(0, 4) == "UTC:") {
			mask = mask.slice(4);
			utc = true;
		}

		var	_ = utc ? "getUTC" : "get",
			d = date[_ + "Date"](),
			D = date[_ + "Day"](),
			m = date[_ + "Month"](),
			y = date[_ + "FullYear"](),
			H = date[_ + "Hours"](),
			M = date[_ + "Minutes"](),
			s = date[_ + "Seconds"](),
			L = date[_ + "Milliseconds"](),
			o = utc ? 0 : date.getTimezoneOffset(),
			flags = {
				d:    d,
				dd:   pad(d),
				ddd:  dF.i18n.dayNames[D],
				dddd: dF.i18n.dayNames[D + 7],
				m:    m + 1,
				mm:   pad(m + 1),
				mmm:  dF.i18n.monthNames[m],
				mmmm: dF.i18n.monthNames[m + 12],
				yy:   String(y).slice(2),
				yyyy: y,
				h:    H % 12 || 12,
				hh:   pad(H % 12 || 12),
				H:    H,
				HH:   pad(H),
				M:    M,
				MM:   pad(M),
				s:    s,
				ss:   pad(s),
				l:    pad(L, 3),
				L:    pad(L > 99 ? Math.round(L / 10) : L),
				t:    H < 12 ? "a"  : "p",
				tt:   H < 12 ? "am" : "pm",
				T:    H < 12 ? "A"  : "P",
				TT:   H < 12 ? "AM" : "PM",
				Z:    utc ? "UTC" : (String(date).match(timezone) || [""]).pop().replace(timezoneClip, ""),
				o:    (o > 0 ? "-" : "+") + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),
				S:    ["th", "st", "nd", "rd"][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10]
			};

		return mask.replace(token, function ($0) {
			return $0 in flags ? flags[$0] : $0.slice(1, $0.length - 1);
		});
	};
}();

// Some common format strings
dateFormat.masks = {
	"default":      "ddd mmm dd yyyy HH:MM:ss",
	shortDate:      "m/d/yy",
	mediumDate:     "mmm d, yyyy",
	longDate:       "mmmm d, yyyy",
	fullDate:       "dddd, mmmm d, yyyy",
	shortTime:      "h:MM TT",
	mediumTime:     "h:MM:ss TT",
	longTime:       "h:MM:ss TT Z",
	isoDate:        "yyyy-mm-dd",
	isoTime:        "HH:MM:ss",
	isoDateTime:    "yyyy-mm-dd'T'HH:MM:ss",
	isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'"
};

// Internationalization strings
dateFormat.i18n = {
	dayNames: [
		"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat",
		"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
	],
	monthNames: [
		"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
		"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"
	]
};

// For convenience...
Date.prototype.format = function (mask, utc) {
	return dateFormat(this, mask, utc);
};

function GetDateByFormat (dt, format)
{
	var d = dt.split("/");
	var dt1 =new Date(d[1],d[0],d[2]);
	return new Date(dt1.format(format));
}
//-------------------------------------------------------/
/* ===== PROTOTYPE SECTION FOR DOM MODEL BROWSERS ===== */
//-------------------------------------------------------/

if( document.implementation.hasFeature("XPath", "3.0") )
{
	if( typeof XMLDocument == "undefined" )
		{
			 XMLDocument = Document; 
		}
		
		//SELECTNODES
		XMLDocument.prototype.selectNodes = function(cXPathString, xNode)
		{
			if( !xNode ) { xNode = this; } 
			var oNSResolver = this.createNSResolver(this.documentElement)
			var aItems = this.evaluate(cXPathString, xNode, oNSResolver, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null)
			var aResult = [];
			for( var i = 0; i < aItems.snapshotLength; i++)
				{
					aResult[i] =  aItems.snapshotItem(i);
				}
			return aResult;
		}
		
		Element.prototype.selectNodes = function(sXPath)
		{
			var oEvaluator = new XPathEvaluator();

			//var oResult = this.evaluate(sXPath, this, null, 0, null);
			var oResult = oEvaluator.evaluate(sXPath, this, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null);
			var aNodes = new Array();
			if (oResult != null)
			{
				var oElement = oResult.iterateNext();
				while(oElement) 
				{
					aNodes.push(oElement);
					oElement = oResult.iterateNext();
				}
			}
			return aNodes;

		}

				
		//SELECTSINGLENODE
		XMLDocument.prototype.selectSingleNode = function(cXPathString, xNode)
		{
			if( !xNode ) xNode = this; 
			
			var xItems = this.selectNodes(cXPathString, xNode);
			if( xItems.length > 0 )
				return xItems[0];
			else
				return null;
		}
	
		Element.prototype.selectSingleNode = function(cXPathString)
		{	
			if(this.ownerDocument.selectSingleNode)
				return this.ownerDocument.selectSingleNode(cXPathString, this);
			else
				throw "For XML Elements Only";
		}

		Node.prototype.transformNode = function (oXslDom)
		{
			var oProcessor = new XSLTProcessor();
			oProcessor.importStylesheet(oXslDom);
			var oResultDom = oProcessor.transformToDocument(this);
			var sResult = new XMLSerializer().serializeToString(oResultDom);
			if (sResult.indexOf("<transformiix:result") > -1)
			{
				sResult = sResult.substring(sResult.indexOf(">") + 1, 
					sResult.lastIndexOf("<"));
			}
			return sResult;                
		};
		
		Object.prototype.navigate = function(url)
		{	
			this.location.href = url;
		}
		HTMLDocument.prototype.navigate = function(url)
		{	
			this.location.href = url;
		}

		HTMLElement.prototype.insertAdjacentElement = function (where,parsedNode) 
		{ 
			switch (where)
			{ 
				case 'beforeBegin': 
					this.parentNode.insertBefore(parsedNode,this) 
					break; 
				case 'afterBegin': 
					this.insertBefore(parsedNode,this.firstChild); 
					break; 
				case 'beforeEnd': 
					this.appendChild(parsedNode); 
					break; 
				case 'afterEnd': 
					if (this.nextSibling) 
						this.parentNode.insertBefore(parsedNode,this.nextSibling); 
					else 
						this.parentNode.appendChild(parsedNode); 
					break; 
			} 
		} 

		HTMLElement.prototype.insertAdjacentHTML = function (where,htmlStr) 
		{ 
			var r = this.ownerDocument.createRange(); 
			r.setStartBefore(this); 
			var parsedHTML = r.createContextualFragment(htmlStr); 
			this.insertAdjacentElement(where,parsedHTML) 
		} 


		HTMLElement.prototype.insertAdjacentText = function (where,txtStr) 
		{ 
			var parsedText = document.createTextNode(txtStr) 
			this.insertAdjacentElement(where,parsedText) 
		} 
		
		Node.prototype.swapNode = function (node) 
		{
			var parent1 = this.parentElement;
			var parent2 = node.parentElement;
			var nodeTmp = parent1.cloneNode(1);
			node = parent2.replaceChild(nodeTmp, node);
			parent1.replaceChild(node, this);
			parent2.replaceChild(this, nodeTmp);

		} 
		
		// support microsoft's "all" property
		HTMLDocument.prototype.__defineGetter__("all", function() {
			return this.getElementsByTagName("*");
		});	
		HTMLElement.prototype.__defineGetter__("all", function() {
			return this.getElementsByTagName("*");
		});

		var allGetter = function () {
		var a = this.getElementsByTagName("*");
		var node = this;
		a.tags = function (sTagName) {
			return node.getElementsByTagName(sTagName);
		};
		return a;
		};
		HTMLDocument.prototype.__defineGetter__("all", allGetter);
		HTMLElement.prototype.__defineGetter__("all", allGetter);
		
		

	
		//support microsoft's  "parentElement" property
		Node.prototype.__defineGetter__("parentElement",
			 function () {return(this.parentNode);	}
		);
		
		//support microsoft's  "text" property
		Node.prototype.__defineGetter__("text",
			 function () {return(this.textContent);	}
		);
		Node.prototype.__defineSetter__("text", 
			function ( txt ) {this.textContent = txt;}
		);
		
		
		//support microsoft's  "innerText" property
		HTMLElement.prototype.__defineGetter__("innerText", 
              function () { return(this.textContent); }
        );
		HTMLElement.prototype.__defineSetter__("innerText", 
              function (txt) { this.textContent = txt; }
        );			

		//support microsoft's  "outerHTML" property
		HTMLElement.prototype.__defineGetter__("outerHTML",
			function()
			{
				var attr;
				var attrs=this.attributes;
				var str="<"+this.tagName.toLowerCase();
				
				for(var i=0;i<attrs.length;i++)
				{
					attr=attrs[i];
					if(attr.specified)
						str+=" "+attr.name+'="'+attr.value+'"';
				}
				
				if(!this.canHaveChildren)
					return str+">";
				return str+">"+this.innerHTML+"</"+this.tagName.toLowerCase()+">";
			}
		);
 		HTMLElement.prototype.__defineSetter__("outerHTML", 
              function (str)
               { 
					//if(!str)
						//this.outerHTML = "";
					//else 
					{
						var range = document.createRange(); 
						range.setStartBefore(this); 
						var docFrag = range.createContextualFragment(str); 
						this.parentNode.replaceChild(docFrag,this);
					}
              }
        );
               
		//support microsoft's  "canHaveChildren" property
		HTMLElement.prototype.__defineGetter__("canHaveChildren",function(){
		switch(this.tagName.toLowerCase()){
				case "area":
				case "base":
				case "basefont":
				case "col":
				case "frame":
				case "hr":
				case "img":
				case "br":
				case "input":
				case "isindex":
				case "link":
				case "meta":
				case "param":
				return false;
			}
			return true;

		});
		
        
		//support microsoft's  "offsetX, offsetY" properties
		Event.prototype.__defineGetter__("offsetX", function() {
			return this.layerX;
		});
		Event.prototype.__defineGetter__("offsetY", function() {
			return this.layerY;
		});       			
		// ----- Event objects -----

		//attachEvent
		Object.prototype.attachEvent = function(event, handler)
		{
			this.addEventListener(event.substring(2), handler, false);					
		};
		
		//detachEvent
		Object.prototype.detachEvent = function(event, handler)
		{
			this.removeEventListener(event.substring(2), handler, false);					
		};
		
		Object.prototype.changeaction = function(event, handler)
		{
			this.addEventListener(event.substring(2), handler, false);					
		};
		

		// srcElement 
		Event.prototype.__defineGetter__("srcElement", 
		function () 
		{
			var node = this.target;
			while( node.nodeType != 1 ) node = node.parentNode;
			// test this:
			if( node != this.target ) alert("Unexpected event.target!") // it still happens sometime, why ?
			return node;
		}
		
		
		);
		
		//ToFixed
		
		Number.prototype.toFixed = function(precision)
		{
			var power = Math.pow(10, precision ||0);
			return String(Math.round(this*power)/power);
		}
		
		// keyCode 
/*		Object.prototype.__defineSetter__("keyCode", 
              function (value) 
              {alert ("keyCode:setter");
				if (isNaN(value)) 
				{
					alert("Value is not number!");
					return;
				}
				
				//this.charCode = value; 
              }
        );			
*/        
        
/*        Event.prototype.__defineGetter__("keyCode", 
		function () 
		{
		alert ("keyCode:getter1 = " + this.charCode);
			if (this.charCode == "undefined" || this.charCode == null)
				this.charCode = 0;
			alert ("keyCode:getter2 = " + this.charCode);
			return this.charCode;
		}
		);
*/
}	//end dom prototypes

/* ===== END PROTOTYPE SECTION FOR DOM MODEL BROWSERS ===== */
function fn_IsFunctionFromIFrameExists(win, nameIFrame, nameFunction)
{
	i = win.document.getElementById(nameIFrame);
	if (!i) return false;
	
	var funcCall;
	if (IsIE)
		funcCall = "win.frames."+nameIFrame+"."+nameFunction ;
	else
		funcCall = "i.contentWindow."+nameFunction ;
	return  (eval("typeof " + funcCall) =="function");

}

function fn_CallFunctionFromIFrame( nameIFrame, nameFunction, params)
{
	var strParams = "";
	var i;
	var p ; 
	if (params != null)
	{
		p=params[0];
	
		for(i=0; i<params.length; i++)
		{
			strParams +=params[i];
			if (i < params.length -1)
				strParams +=",";
		}
	}
	i = document.getElementById(nameIFrame);
	
	if (!i) return;
	var funcCall;
	var browser = fn_identifybrowser();
	if (browser == "ie")
		funcCall = "window.frames."+nameIFrame+"."+nameFunction ;
	else
		funcCall = "i.contentWindow."+nameFunction ;
	if (eval("typeof " + funcCall) =="function")
	{
		if (params == null)
			eval(funcCall+ "()");
		else
			eval(funcCall + "(params[0])");//it works
	}

}
function fn_CallFunctionFromIFrameEx(win, nameIFrame, nameFunction, params)
{
	var ifr = win.document.getElementById(nameIFrame);
	if (!ifr) return false;
	var strParams = "";
	var i;
	var p ; 
	if (params != null)
	{
		p=params[0];
		for(i=0; i<params.length; i++)
		{
			strParams +=params[i];
			if (i < params.length -1)
				strParams +=",";
		}
	}
	
	var funcCall;
	if (IsIE)
		funcCall = "win.frames."+nameIFrame+"."+nameFunction ;
	else
	    funcCall = "ifr.contentWindow." + nameFunction;
	if (eval("typeof " + funcCall) =="function")
	{
		if (params == null)
			eval(funcCall+ "()");
		else
			eval(funcCall + "(params[0])");//it works
	}
}

function fn_CallFunctionFromParent(win, nameFunction, params)
{
	var strParams = "";
	var p ; 
	if (params != null)
	{
		p=params[0];
		for(i=0; i<params.length; i++)
		{
			strParams +=params[i];
			if (i < params.length -1)
				strParams +=",";
		}
	}
    var funcCall = "win." + nameFunction;
	
	if (eval("typeof " + funcCall) =="function")
	{
		if (params == null)
			eval(funcCall+ "()");
		else
			eval(funcCall + "(params[0])");
	}
}

function fn_GetArrayElementsFromIFrame(nameIFrame, nameElement)
{
	i = document.getElementById(nameIFrame);
	if (!i) return;
	if (IsIE)
		return i.document.getElementsByTagName(nameElement);
	else
		return i.contentWindow.document.getElementsByTagName(nameElement);
}	
function fn_GetElementFromWindowIFrame(win, nameIFrame, nameElement)
{
	i = win.document.getElementById(nameIFrame);
	if (!i || i.contentWindow.document.getElementById(nameElement) == null) return;
	return i.contentWindow.document.getElementById(nameElement);
}	


//KeyCode consts
var KeyCode_Backspace = 8;
var KeyCode_Tab = 9;
var KeyCode_Enter = 13;
var KeyCode_Shift = 16;
var KeyCode_ESC = 27;
var KeyCode_Ctrl = 17;
var KeyCode_SpaceBar = 32;
var KeyCode_PageDown = 34;
var KeyCode_LeftArrow = 37;
var KeyCode_RightArrow = 39;
var KeyCode_ApostropheHeb = 1497;
var KeyCode_Apostrophe = 39;
var KeyCode_DownArrow = 40;
var KeyCode_Minus = 45;
var KeyCode_Insert = 45;
var KeyCode_Delete = 46;
var KeyCode_DecimalPoint = 46;
var KeyCode_0 = 48;
var KeyCode_9 = 57;
var KeyCode_a = 65;
var KeyCode_z = 90;
var KeyCode_Numpad_0 = 96;
var KeyCode_Numpad_9 = 105;
var KeyCode_Numpad_DecimalPoint = 110;
var KeyCode_Delete1 = 127;
var KeyCode_Comma = 188;
var KeyCode_DecimalPoint1 = 190;	
var KeyCode_SingleQuote = 222;
var KeyCode_Alef = 1488;
var KeyCode_Tav = 1514;
var KeyCode_ApostropheHeb = 1497;

function fn_CancelKeyCode(evnt)
{
	var browser = fn_identifybrowser();
	switch(browser)
	{
		case "ie":
			evnt.keyCode=0;
			return;
		break;
		case "dom":
			evnt.preventDefault();
			evnt.stopPropagation();
			return;
		break;
	}
}
function fn_CancelPastCode(evnt, clipboard)
{
	var browser = fn_identifybrowser();
	switch(browser)
	{
		case "ie":
			clipboard.clearData("Text");
			break;
		case "dom":
			evnt.preventDefault();
			evnt.stopPropagation();
			return;
		break;
	}
}


//*****************temporary*********
function GetTextFromNode(node)
{
	if (node == null)
		return "";
	try
	{
		if(window.ActiveXObject)
			return node.text;
		else
			return node.textContent;
    }
   catch (ex)
   {
		window.status=ex.description;
		return "";
   }    
}
//For close button in confim from list
function CloseFromConfirm()
{
	var ifr = document.getElementById("approvalFrame");
	if(ifr) ifr.outerHTML = "";
	ifr = document.getElementById("TradeIfr");
	if(ifr) ifr.outerHTML = "";
	SetFullDiv();
	HideFltr(window,"freeze");
	SetSelectVisible("",document.getElementsByTagName("select"));
}

function SetSelectVisible(val,ar)
{
	for(var i = 0;i < ar.length;i++)
		ar[i].style.visibility = val;
}
function CloseErrorMessage()
{
	var d = document.getElementById("ermsg");
	if(d)
	{
		d.outerHTML = "";
		UnFreeze();
	}
	
	//window.frames.TradeIfr.ResetSelect();
	fn_CallFunctionFromIFrame("TradeIfr", "ResetSelect");
}

function UnFreeze()
	{
		HideFltr(window);
		SetSelectVisible("",document.getElementsByTagName("select"));
		//*****Anna*****Cross-browser code*****
		fn_CallFunctionFromIFrame("TradeIfr", "ResetSelect");
		//if(document.getElementById("TradeIfr"))
		//	if(typeof(window.frames.TradeIfr.ResetSelect) == "function")
		//		window.frames.TradeIfr.ResetSelect();
		//**********************************
	}
	
	function NotDisplayIframe(apr)
	{
		var w = window;
		var ifr = w.document.getElementById("approvalFrame");
		if(ifr) ifr.outerHTML = "";
		w = w.document.getElementById("TradeIfr");
		if(!w)
		{
			SetFullDiv();
			return;
		}
		if(!apr)
		{
			//if(typeof(window.frames.TradeIfr.ResetSelect) == "function") window.frames.TradeIfr.ResetSelect();
			fn_CallFunctionFromIFrame("TradeIfr", "ResetSelect");
			HideFltr(w,"freeze");
			SetSelectVisible("",w.document.getElementsByTagName("select"));
		}
		var d = document.getElementById('IFramePro')
		//TODO test it
		if(d) document.frames["IFramePro"].closeErrorPopup("h");
		if(d) document.frames["IFramePro"].closeErrorPopup("h");
		var r = document.getElementById('IFrameChangePro')
		if(r) document.frames["IFrameChangePro"].closeErrorPopup("h");
	}
	
	function errorfromapproval(code,desc,isFromApproval)
	{
		if(desc != "")
		{
			ShowAlertAsync(desc);
		}
		//code = 319
		NotDisplayIframe(isFromApproval);
		var errDiv
		var errTbl
		if(code.indexOf('319') != -1)
		{
			errDiv = "alertdiv";
			errTbl = "tblAlert";
		}
		else
		{
			errDiv = "errordiv"
			errTbl = "tblError";
		}
	}
	
	function ShowAlertAsync(msg,id)
	{
		var m,p;
		if(id)
		{
			m = "messageid";
			p = id;
		}
		else
		{	
			m = "messagedesc";
			p = escape(fn_search_encode(msg));	
		}
		var src = "../../trade/tradebuysell/MessageError.aspx?t=" + new Date() + "&" + m + "=" + p + "&";
		fn_getasyncdata("GET", src, null, "GetAlertAsync");
	}
	
	function ConvertDoubleToString(val)
	{
		val = val.toString();
		var ind = val.indexOf('+');
		if(ind == -1) return val;
		var zero = parseInt(val.substring(ind + 1,val.length));
		val = val.substring(0,ind - 1);
		ind = val.indexOf('.');
		if(ind != -1)
		{
			var points = val.substring(ind + 1,val.length).length;
			val = val.replace(".","");
			zero -= points;
		}
		while(zero-- > 0)
		{
			val += "0";
		}
		return val;
	}
	
	function CheckValLength(id,val)
	{
		var el = document.getElementById(id);
		if(!el || !el.value) return true;
		var str = el.value.split('.');
		str = str[0];
		return (str.length <= val)
	}

function OpenEmissionDetails(emissionKeyNo)
{
	window.open("EmissionDetails.aspx?EmissionKey=" + emissionKeyNo + "&" ,'','top=0,left=0,width=550,height=630,status=0,scrollbars=auto');
}
function fn_GetXMLDocumentFromElementXml(objXml)
{
	if (IsIE)
		return document.getElementById(objXml);
	//FF, Chome, Safari,Opera
	var beg = (IsOpera? "" : "<?xml version='1.0' encoding='windows-1255' ?>");
	var strXml = beg + document.getElementById(objXml).innerHTML;
	strXml = strXml.replaceAll("UTF-8","windows-1255");
	var parser = new DOMParser;
	return parser.parseFromString(strXml,"text/xml");

}

function fn_SendXmlWithResponse(oXmlHttp, url, strXml, callback, callbackError)
{

try	
	{
		if(IsIE)
		{
			oXmlHttp.src = url;
			oXmlHttp.onsendafter= callback;
			oXmlHttp.onsenderror=callbackError;	
			oXmlHttp.send(strXml);

		}
		else
		{
			var req = new XMLHttpRequest();
			req.onreadystatechange=function(){ eval (callback +"(req)");}
			req.overrideMimeType("text/xml");
			req.open("POST",url,true);
			req.setRequestHeader("Content-Type","text/xml");
			req.setRequestHeader("Accept","*/*");
			req.send(strXml.replaceAll("\">","\"/>"));
		}
	}
	catch(e)
	{
		window.status=e.description;
	}

}

/* ShowModalDialog */
var dialogCallBack;
var dialogRetValue;
var dlgStatus = false;
var intervalOut = null;
function fn_ShowModalDialog(src,w,h,title,cssClass,showLoader,retCallBack)
{
	dialogCallBack = retCallBack;
	
	var ifr = '<iframe id="dlgIframe" margin="0" frameborder="0" scrolling="1" style="height:'+ h+'px; width:' + w + 'px;" src="' + src + '" ></iframe>';
	var divDialog ='<div id="modalDlg" style="left:' + ((document.body.clientWidth - w) / 2)  + 'px; top:' + ((document.body.clientHeight - h )/ 2) + 'px ; width:' + (w + 6) + 'px;height:' + (h + 34) + 'px;" class="' + cssClass + '" > \
		<div class="dlgTop"> \
			<div class="dlgTBL"></div> \
				<a class="dlgClose" href="javascript:fn_CloseModalDialog();" title="סגירה" ></a> \
				<div class="dlgTBR"></div> \
				<div class="modalDlgTitle"><b>' +  title + '</b></div> \
			</div> \
			<div class="dlgCenter" style="height:' + h + 'px" > \
				<div class="dlgCTL" ></div> \
				<div class="dlgCTR"></div> \
				<div class="dlgCT"> ' + ifr + ' \
				</div> \
			</div> \
		<div class="dlgLower"></div> \
	</div>';
	
	var dlgBox =  document.createElement('div');
	
	dlgBox.innerHTML = divDialog;
	window.document.body.appendChild(dlgBox);
	
	ShowFltr(window);
	if(showLoader != 1)
	{
		HidePrgImg(window);
	}
	dlgStatus = true;
	intervalOut = setInterval(dlgStatusCheck,100);
}

function dlgStatusCheck()
{
	if(!dlgStatus)
	{
		if(dialogCallBack != null)
		{
			dialogCallBack.call(this,dialogRetValue);
			//dlgStatus = true;
		}
		window.clearInterval(intervalOut);
	}
}

function fn_CloseModalDialog()
{
	document.getElementById("modalDlg").outerHTML= "";
	HideFltr(window);
	dlgStatus = false;
	
}

function fn_SetDialogResult(result)
{
	dialogRetValue = result;
}

//Emulation click on link (use to get referrer for all browser)
function fn_OpenUrl(url)
{
	var fakeLink = document.createElement('a');
	if (IsIE)
	{
		fakeLink.href = url;
		document.body.appendChild(fakeLink);
		fakeLink.click();
	}
	else
		location.href = url;
}

function fn_OpenUrlEx(win,url)
{
	var fakeLink = win.document.createElement('a');
	if (IsIE)
	{
		fakeLink.href = url;
		win.document.body.appendChild(fakeLink);
		fakeLink.click();
	}
	else
		win.location.href = url;
}
function fn_OpenUrlTop(url)
{
	var fakeLink = top.document.createElement('a');
	if (IsIE)
	{
		fakeLink.href = url;
		top.document.body.appendChild(fakeLink);
		fakeLink.click();
	}
	else
		top.location.href = url;
}

/* Profile exposure */
function OpenProfileExposureLegend(div_id)
{
	document.getElementById(div_id).style.display = "block";
	if(navigator.appName == "Microsoft Internet Explorer" && parseFloat(navigator.appVersion) < 7)
		ShowHideCombo("hidden");
}

function CloseProfileExposureLegend(div_id)
{
	document.getElementById(div_id).style.display='none';
	if(navigator.appName == "Microsoft Internet Explorer" && parseFloat(navigator.appVersion) < 7)
		ShowHideCombo("visible");
}

//find position of object in page IE&mozila
function findPos(obj) 
{
    var curleft = curtop = 0;
    if (obj.offsetParent)
    {
        do {
	    curleft += obj.offsetLeft;
	    curtop += obj.offsetTop;

		 } while (obj = obj.offsetParent);
    }
    return [curleft,curtop];
}

function show_exposure(e,id,offsetFromTop)
{

	e = e||window.event;
    var tg = (window.event ? e.srcElement: e.target);
    if (tg.nodeName != 'IMG' || tg.nodeName != 'TD' ){
	var clientWidth=document.body.clientWidth;
	var hiddenDiv = document.getElementById(id);
	var offset=findPos(tg);
	var left = offset[0];
	var top = (!offsetFromTop) ? offset[1] : offset[1] + offsetFromTop;
	
	if(( clientWidth -left ) < (clientWidth * 0.66) )
		left-=350;
	else
		left+=180;
	
	hiddenDiv.style.left =left+"px";
	hiddenDiv.style.top =top+"px";
	hiddenDiv.style.display="block";
	}
}

function hide_exposure(id)
{
	document.getElementById(id).style.display="none";	
}

/** Bubble dialog section **/

function fn_ShowBubbleDialog(parentNodeId, bubbleWidth, bubbleMinHeight, info, offsetTopFromParent) 
{
	var parentNode = document.getElementById(parentNodeId);	
	var dlgBox = document.getElementById('bubbleDlg');
	
	if(!dlgBox) /* first instantiation */
	{
		var divDialog =	'<div id="topDiv" class="bubbleDlgTop"> \
							<div class="bubbleDlgTBL"></div> \
							<div class="bubbleDlgTBR"></div> \
						 </div> \
						 <div class="bubbleDlgCenter" style="minheight:' + bubbleMinHeight + 'px" > \
							<div id="leftCont" class="bubbleDlgCTL" style="height:20px" ></div> \
							<div id="rightCont" class="bubbleDlgCTR" style="height:20px" ></div> \
							<div class="bubbleDlgContent" id="cont"><b>' + info + '</b></div> \
						 </div> \
						 <div id="bottomDiv" class="bubbleDlgLower"> \
							<div id="bubbleDlgBBL" class="bubbleDlgBBL"></div> \
							<div id="bubbleDlgBBR" class="bubbleDlgBBR"></div> \
						 </div>';				 
						 
		dlgBox = document.createElement('div');
		dlgBox.id = 'bubbleDlg';
		
		with(dlgBox.style)
		{
			width = bubbleWidth + "px";
			minheight = bubbleMinHeight + "px";
		}
				
		dlgBox.innerHTML = divDialog;					
	}
		
	/* set parent div properties */
	var offsetParentLeft = findPos(parentNode)[0];		
	
	parentNode.appendChild(dlgBox);
	parentNode.style.position = "relative";
	document.getElementById('cont').innerHTML = info;	
	
	var topDiv = document.getElementById('topDiv');
	var offsetTopDiv = findPos(topDiv)[1]		
	var bottomDiv = document.getElementById('bottomDiv');
	var offsetBottomDiv = findPos(bottomDiv)[1]		
	
	var actualHeight = offsetBottomDiv-offsetTopDiv-14;
	
	var leftCont = document.getElementById('leftCont'); 
	var rightCont = document.getElementById('rightCont'); 
	leftCont.style.height= actualHeight + "px";
	rightCont.style.height= actualHeight + "px";
	
	/* set bubble box position to fit the screen size */
	if(!offsetTopFromParent)
		offsetTopFromParent = 0;
	dlgBox.style.top = offsetTopFromParent + 'px';
	
	var offsetChildLeft = offsetParentLeft + bubbleWidth - document.body.clientWidth;
	if(offsetChildLeft > 0)
		dlgBox.style.left = (-1 * offsetChildLeft - 20) + 'px';
	else
		dlgBox.style.left = '0px';
	
	var bottomLeftCorner = document.getElementById('bubbleDlgBBL');
	bottomLeftCorner.style.top = actualHeight + 14 + 'px';
	
	var bottomRightCorner = document.getElementById('bubbleDlgBBR');
	bottomRightCorner.style.top = actualHeight + 14 + 'px';
}

function fn_HideBubbleDialog()
{
	var dlgBox = document.getElementById('bubbleDlg');
	if(dlgBox)
	{
		dlgBox.parentNode.removeChild(dlgBox);
	}
}



/** End Bubble dialog section **/
function open_portf_add_info_Net(BaseRef, ContinuousRef, VersionRef, PortfolioId,BarneaRef,ShowUpdateDelete, commandType)
{
		window.open("../../trade/portf/PortfAddInfo.aspx?BaseRef=" + BaseRef + "&ContinuousRef=" + ContinuousRef + "&VersionRef=" + VersionRef + "&BarneaRef="+ BarneaRef +"&portfolioid=" + PortfolioId +"&ShowUpdDel="+ShowUpdateDelete+"&commandType=" + commandType+"&" , "info", "left=0,top=0,width=480,height=500,scrollbars=no,resizable=yes,status=no");
	
}

function open_declaration()
{
	var w=window.open('../../../trade/inc/cover_declaration.asp?'+'&','declaration','left=0px,top=0px,width=500px,height=230px,resizable =1');	
	try{ w.focus();}
	catch(e){}
}


//remove spaces from bigin and end of string
function trim(str)
{
  return str.replace(/(^\s+)|(\s+$)/g,"");
}

/** Nested Select section **/

function NSelectElemClick(target)
{										
	var fm=document.getElementById("nsFirstMenu");
	if (target.id=='nsHeadListBox') 	                        /*open-close  DropDownList */
	{
		if (fm.style.display == 'none')
		{
			fm.style.display = 'block';	
			var ns=document.getElementById("NestedSelect");
		    var deletUls=ns.getElementsByTagName('ul');   /*delete all ul on screen exeps the main one*/
	        for(var j=0;j<deletUls.length;j++)              
			deletUls[j].style.display='none';         
			fm.style.display = 'block';
		}
		else 
			fm.style.display = 'none';	
	}
	else 
	{                                                 /*check if there are sons to the ul*/
	  if ((target.nextSibling==null) && (target.innerHTML!='-----------'))
	  {
		var listBox=document.getElementById("nsHeadListBox");
		listBox.textContent=target.innerHTML;
		listBox.innerHTML=target.innerHTML;
		fm.style.display = 'none';
	  }		 
	}
    document.getElementById("NSselected").value=target.parentNode.value;
   
    
}

function NSelectOnMouseOver(target)
{	
	if (target.parentNode.parentNode.id!="")
	{
		var ns=document.getElementById("NestedSelect");
		var deletUls=ns.getElementsByTagName('ul');   /*delete all ul on screen excepts the main one*/
		for(var j=0;j<deletUls.length;j++)              
		{
			if (deletUls[j].id!='NestedSelect')
			deletUls[j].style.display='none';         
		}
		var temp=target;                                       /*collect all father nodes*/
		var openLists=new Array(); 
		var i=0;
		while  ((temp.parentNode.parentNode.id!="NestedSelect") && (temp.parentNode.parentNode.id!=""))
		{
			openLists[i]=temp.parentNode.parentNode;
			temp=temp.parentNode.parentNode;
			i++;
		}
		for(var j=0;j<openLists.length;j++)                /*place listboxes on screen*/
			openLists[j].style.display='block';           
		if (target.nextSibling!=null)
		{
			if (target.nextSibling!=null)
			target.nextSibling.style.display='block';
		}
	}	
}

/** End Nested Select section **/
