var clientPC = navigator.userAgent.toLowerCase(); // Get client info
var is_ie = ((clientPC.indexOf("msie") != -1) && (clientPC.indexOf("opera") == -1));
var is_ff = (clientPC.indexOf("firefox") != -1);

function getBodyScrollTop()
{
  return self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop);
}

function getBodyScrollLeft()
{
  return self.pageXOffset || (document.documentElement && document.documentElement.scrollLeft) || (document.body && document.body.scrollLeft);
}
function getBounds(element)
{
  var left = element.offsetLeft;
  var top = element.offsetTop;
  for (var parent = element.offsetParent; parent; parent = parent.offsetParent)
  {
    left += parent.offsetLeft /*- parent.scrollLeft*/;
    top += parent.offsetTop /*- parent.scrollTop*/;
  }
  return {left: left, top: top, width: element.offsetWidth, height: element.offsetHeight};
}

var root = window.addEventListener || window.attachEvent ? window : document.addEventListener ? document : null;

function unset_bunload()
{
         root.onbeforeunload = null; 
         return true;
}
function SubmitForm(id,cnf,elarr,onsubmit_func)
{        
         unset_bunload();
         if (cnf)
            if (!confirm(l_confirm_quest)) 
               return;
               
        for (var i in elarr)
		    document.getElementById(i).value = elarr[i];
               
         var f = document.forms[id];
        
         if (f == undefined)
         {
            i = 0;
            f = document.forms[i];
            while ( i < document.forms.length )
            {
                  i++;
                  f = document.forms[i]; 
                  if (f.id == id) break;
            } 
         }  
         unset_bunload();

	if (onsubmit_func != undefined){
		if (onsubmit_func() != false) 
		f.submit();
	}else
		f.submit();
        

         return true;
}
function SubmitFormNum(id,num)
{        
         var f = document.forms[id];
        
         if (f == undefined)
         {
            i = 0;
            f = document.forms[i];
            while ( i < document.forms.length )
            {
                  i++;
                  f = document.forms[i]; 
                  if (f.id == id) break;
            } 
         }  
         
         var num_input = document.createElement('input');
         num_input.type = 'hidden';
         num_input.name = 'num';
         num_input.value = num;
         f.appendChild(num_input);
         f.submit();
}
function winopen(adress,winname,w,h)
{
         var Win = window.open(adress,winname,'titlebar=0,scrollbars=0,resizable=0,status=0,location=0,toolbar=0,menubar=0,width='+w+',height='+h);
         Win.focus();
}
function ahref(adr){
         document.location.href=adr;
}
/**
*
*/
function getElementComputedStyle(elem, prop)
{
  if (typeof elem!="object") elem = document.getElementById(elem);
  
  // external stylesheet for Mozilla, Opera 7+ and Safari 1.3+
  if (document.defaultView && document.defaultView.getComputedStyle)
  {
    if (prop.match(/[A-Z]/)) prop = prop.replace(/([A-Z])/g, "-$1").toLowerCase();
    return document.defaultView.getComputedStyle(elem, "").getPropertyValue(prop);
  }
  
  // external stylesheet for Explorer and Opera 9
  if (elem.currentStyle)
  {
    var i;
    while ((i=prop.indexOf("-"))!=-1) prop = prop.substr(0, i) + prop.substr(i+1,1).toUpperCase() + prop.substr(i+2);
    return elem.currentStyle[prop];
  }
  
  return "";
}
/**
*
*/
var Visible = true;
function ShowEdit()
{  
         var obj = document.getElementById('section_menu');
         var ed = document.getElementById('edit'); 

         if (Visible)
            state = "none"; 
         else
            state = "block";
                
         if (is_ie)
         {
	        obj.style.setAttribute("display",state);
	        if (Visible) ed.style.setAttribute("backgroundPosition","0 -37"); else ed.style.setAttribute("backgroundPosition","0 0");
         }
         else
         {
         	obj.setAttribute("style","display: "+state); 
         	if (Visible) ed.setAttribute("style","background-position: 0 -37px;"); else ed.setAttribute("style","background-position: 0 0;"); 
         } 
         Visible = !Visible;       
}

/**
*
*/
function OpenSearch(back_containers_id,url,func)
{
         if (is_array(back_containers_id)){
            window.rec_containers = new Array();
            for (var i in back_containers_id){
                window.rec_containers[i]=document.getElementById(back_containers_id[i]);
             }
         }else
              window.rec_containers=document.getElementById(back_containers_id);
         window.callback = func;   
         window.open(url);
}
/**
*
*/
function OpenBack(back_containers_id,url,func)
{
         if (is_array(back_containers_id)){
            window.rec_containers = new Array();
            for (var i in back_containers_id){
                window.rec_containers[i]=document.getElementById(back_containers_id[i]);
             }
         }else
              window.rec_containers=document.getElementById(back_containers_id);
         window.callback = func;   
         window.open(url);
}
/**
*
*/
function SendBack(sendvalue,wclose)
{        
         if (typeof(window.opener.rec_containers[0]) == 'object'){
            for (var i in window.opener.rec_containers){
                window.opener.rec_containers[i].value=sendvalue[i];
             }         
         }else
              window.opener.rec_containers.value = (is_array(sendvalue))?sendvalue[0]:sendvalue;
         if (wclose)
            window.close();
         window.opener.callback();
}
/**
*
*/
function myhtmlspecialchars(str)
{
	var str_out = str.replace(/&(?!(\#[0-9]+;))/gi,'&amp;');
	str_out = str_out.replace(/</g,'&lt;');
        	str_out = str_out.replace(/>/g,'&gt;');
        	str_out = str_out.replace(/"/g,'&quot;'); 

	return str_out;
}
/**
 * Get elements style
 * @param {Object} elem - element
 * @param {Object} name - name of the style to get
 */
function getStyle(elem, name) {
	var d = document.defaultView;
	if (elem.style[name])
		return elem.style[name];

	else if (elem.currentStyle)
		return elem.currentStyle[name];

	else if (d && d.getComputedStyle) {
		name = name.replace(/([A-Z])/g,"-$1");
		name = name.toLowerCase();

		var s = d.getComputedStyle(elem,"");
		return s && s.getPropertyValue(name);
	}
	return null;
}
function extend (target, source) {
	for (var i in source)
		target[i] = source[i];
}

function css(elem, styles){
	extend(elem.style, styles);
}
function is_array( mixed_var ) {    
     return ( mixed_var instanceof Array );  
}  
function switchSelText(sname,tname)
{
         var sel_obj = document.getElementById(sname);
         var text_obj = document.getElementById(tname);
         
         var s = getStyle(sel_obj,'display');

         if (s == 'inline')
         {
            sel_obj.value = 0;
            css(sel_obj, {display: 'none'});
            css(text_obj,{display: 'inline'});
         }else{
               text_obj.value="";
               css(text_obj,{display: 'none'}); 
               css(sel_obj, {display: 'inline'});
         }
}
function GetLinkMyPage(idinput,scriptname)
{
         var inp_obj = document.getElementById(idinput);
         var loc = root.location;
         param = loc.search.replace(/^\?/i, '');
         script = loc.pathname.replace(/\/\w+\.\w+/i,'/'+scriptname)
         inp_obj.value = loc.protocol+'//'+loc.hostname+script+param;
         css(inp_obj,{'display':'inline'});
}
function selectCode(a)
{
	// Get ID of code block
	var e = a.parentNode.parentNode.getElementsByTagName('CODE')[0];

	// Not IE
	if (window.getSelection)
	{
		var s = window.getSelection();
		// Safari
		if (s.setBaseAndExtent)
		{
			s.setBaseAndExtent(e, 0, e, e.innerText.length - 1);
		}
		// Firefox and Opera
		else
		{
			var r = document.createRange();
			r.selectNodeContents(e);
			s.removeAllRanges();
			s.addRange(r);
		}
	}
	// Some older browsers
	else if (document.getSelection)
	{
		var s = document.getSelection();
		var r = document.createRange();
		r.selectNodeContents(e);
		s.removeAllRanges();
		s.addRange(r);
	}
	// IE
	else if (document.selection)
	{
		var r = document.body.createTextRange();
		r.moveToElementText(e);
		r.select();
	}
}

p_timer = null;
p_x_open = p_y_open = 0;
panel_cont = null;
function ShowPanel(id,a,show,first,pwidth,time)
{        
         if (show)
         {
            if (first){ 
               panel_cont = document.getElementById(id);      
               var box = getBounds(a);
               p_x_open = box.left + ((pwidth)?(box.width - pwidth):0);
               p_y_open = box.top + box.height + 5;
            }
            clearTimeout(p_timer);
            css(panel_cont, {'top': p_y_open+'px', 'left': p_x_open+'px', 'display':'block'});                     
         }else {
               time = (time)?time:500;
               p_timer = setTimeout("HidePanel()", time);
             //css(cont, {'display':'none'});   
         }    
}
function HidePanel()
{
         if (typeof p_timer == 'undefined') return;
         clearTimeout(p_timer);
         //var cont = document.getElementById(panel_id);
         if (panel_cont != 'undefined' && panel_cont != null)
            css(panel_cont, {'display':'none'});  
}
function isset(varname){
  return(typeof(window[varname])!='undefined');
}
