//version 1.174
var smLocal=smUrl(window.location.href);
var noReload=false;
var incrNum=0;
var isLoading=0;

var fm2={
   beforeUnloadChk:{}
   ,buf:{}
   ,nextIdNum:0
   ,autoAliasSwitch:0
   ,conf:{}
   ,nextId:function(){
      var nid=fm2.nextIdNum;
      fm2.nextIdNum++;
      return nid;
   }
   ,groupDelete:function(cls,tbl){
      if(!confirm(langArr['confirm_del'].replace(/\[table\]/,tbl))) return false;
      if($('.'+cls+':checked').length<1) return;
      setLoading(1);
      var url='index.php?ajax=1&elm=fm2q';
      $('.'+cls+':checked').each(function(k,v){
        var sp=$(this).val().split('-');
	url=url+'&'+fmSerial+'q[]=delete/'+sp[1]+'/'+sp[2];
      });
      $.get(url,function(data){
         processResponse(data);
         setLoading(0);
      });
   }
   ,hlSelectedInit:function(cls){
      $('.'+cls).each(function(k,v){
         var cc=$(this).val().replace(/[^\-]+/,'list');
	 $(this).change(function(){
	   fm2.hlSelectedItem(this,$('#'+cc));
	 });
      });
   }
   ,hlSelectedItem:function(itm,tar){
      if(!isset(tar)) var tar=itm;
      if($(itm).is(':checked')){
         $(tar).addClass('system-selected-item');
      }
      else{
         $(tar).removeClass('system-selected-item');
      }
   }
   ,hlSelectedRow:function(sel){
      $(sel).each(function(k,v){
        var row=$(this);
        var cb=row.find('input[type=checkbox]');
	cb.change(function(){
	   fm2.hlSelectedItem(cb,row);
	});
      });
   }
   ,jurl:function(url){
      return url.replace(/\&amp\;/g,'&');
   }
   ,initQuickSearch:function(table,url){
      url=fm2.jurl(url);
      var tim;
      var h=$('#quicksearch-'+table);
      var e=$('#qsq-'+table,h);
      fm2.initOrderLinks(table,url);
      $('form',h).submit(function(){
         fm2.doQuickSearch(table,e.val(),url);
         return false;
      });
      $('#quicksearchclear',h).click(function(){
         fm2.doQuickSearch(table,'',url);
	 e.val('');
	 return false;
      });
      e.keypress(function(){
         clearTimeout(tim);
         tim=setTimeout(function(){
	    fm2.doQuickSearch(table,e.val(),url);
	 },500);
      }).attr('autocomplete','off');
   }
   ,initOrderLinks:function(table,url){
      var h=$('#quicksearch-'+table);
      var e=$('#qsq-'+table,h);
      $('.admin-orderlink',$('.system-list-'+table)).click(function(){
	$('#quicksearchorder',h).val(_GETU(fmSerial+'order',$(this).attr('href')));
	fm2.doQuickSearch(table,e.val(),url);
        return false;
      });
   }
   ,doQuickSearch:function(table,q,url){
       setLoading(1);
       var url=url+'&elm=quicksearch&ajax=1&table='+table+'&q='+q;
       var o=$('#quicksearchorder',$('#quicksearch-'+table));
       url=url+'&'+o.attr('name')+'='+o.val();
       $.get(url,function(data){
	 $('.system-list-'+table).html(data);
         fm2.initOrderLinks(table,url);
	 setLoading(0);
       });
   }
   ,initForm:function(sel,noajax){
     if(!isset(fm2.buf['formselector'])) fm2.buf['formselector']={};
     fm2.buf['formselector'][sel]=sel;
     var hasSpaw=false;
     $(sel).each(function(){
        $('.system-spaw-id',this).each(function(){
	   hasSpaw=true;
	});
     });
     if(hasSpaw){
        SpawEngine.addEventHandler('spawallinit','fm2.checkForms');
     }
     $(sel).each(function(ind){
       if(!isset(noajax)){
         $(this).attr('action',$(this).attr('action')+'&mode=ajaxsubmission');
         $(this).submit(function(){
            processForm(this);
            return false;
          });
	}
        if(!$(this).attr('id')) $(this).attr('id','fm2form'+fm2.nextId());
	if(!hasSpaw) fm2.buf[$(this).attr('id')]=fm2.serializeForm(this);
	$(this).submit(function(){
	   fm2.buf[$(this).attr('id')]=undefined;
	});
      });
   }
   ,beforeUnload:function(t){
      var msg=[];
      if(!isset(t)) var t=window;
      if(isset(t.fm2.buf['formselector'])){
        $.each(t.fm2.buf['formselector'],function(k,v){
           $(v).each(function(){
             if(isset(t.fm2.buf[$(this).attr('id')])){
               if(t.fm2.serializeForm(this)!=t.fm2.buf[$(this).attr('id')]){
  	         msg[msg.length]=langArr['form_changed_confirm'];
	       }
	     }
	   });
        });
      }
      if(t.fm2.beforeUnloadChk['jumploader']){
         msg[msg.length]=jumploader.uploadFinish();
      }
      var r=msg.join('\n');
      if(r) return r;
   }
   ,initBeforeUnload:function(b,t){
      if(!isset(t.fm2)) return;
      $(window,b).bind('beforeunload',function(){return t.fm2.beforeUnload(t);});
   }
   ,serializeForm:function(sel){
      $('.system-spaw-id',sel).each(function(){
         var name=$(this).html();
	 var cl=name.replace(/[^A-Za-z0-9_]/g,'_')+'_1';
	 var ob=window[cl+'_obj'];
	 var pg=window[cl+'_page'];
	 if(isset(ob)){
           if(ob.isInitialized()){
	      v=ob.updatePageInput(pg);
	   }
	 }
      });
      var r=$(sel).serialize();
      $('input[type=file]',sel).each(function(){
         r=r+'&'+escape($(this).attr('name'))+'='+escape($(this).val());
      });
      return r;
   }
   ,checkForms:function(){
      $.each(fm2.buf['formselector'],function(k,v){
         $(v).each(function(){
           fm2.buf[$(this).attr('id')]=fm2.serializeForm(this);
	 });
      });
   }
   ,hideEditDiv:function(id){
     var a=true;
     if(isset($('#'+id).find('iframe')[0].contentWindow.fm2)){
        var c=$('#'+id).find('iframe')[0].contentWindow.fm2.beforeUnload();
        if(c){
           var a=confirm(c);
        }
     }
     if(a) $('#'+id).hide();
   }
   ,initMoveBoxes:function(){
      $('div.system-eboxholder').sortable({connectWith:'div.system-eboxholder'
                 ,over:function(){
		    $('div.system-eboxholder').removeClass('system-eboxover');
		    $(this).addClass('system-eboxover');
		 }
	         ,update:function(event,ui){
		    $(ui.item).find('input').val($(this).attr('rel'));
		    $(this).removeClass('system-eboxover');
		 }
		 }).disableSelection();
      $('.del','div.system-eboxholder').click(function(){
           $(this).parent().appendTo('div.system-box-custom > div.system-eboxholder')
	          .find('input').val($('div.system-box-custom > div.system-eboxholder').attr('rel'));
       });
       $('div.system-moveboxes-buttons').find('input.save').click(function(){
       setLoading(1);
       $.post('index.php?ajax=1&elm=moveboxes'
              ,$('div.system-eboxholder').find('input').serializeArray()
	      ,function(data){
	         var box=$('<div></div>').html(data).dialog({modal:true});
		 setTimeout(function(){
		    box.dialog('destroy').remove();
		 },3000);
	         setLoading(0);
	      });
       });
       $('div.system-moveboxes-buttons').find('input.reset').click(function(){
          window.location.reload();
       });
   }
   ,checkAlias:function(sel,table,id,errcl){
      fm2.buf.checkAliasSettings={'table':table,'id':id,'errcl':errcl};
      $(sel).change(function(){
         fm2.checkAliasStr(this);
      }).focus(function(){
         fm2.checkAliasStr(this);
      }).focusout(function(){
         fm2.checkAliasStr(this);
      });
   }
   ,checkAliasStr:function(elm){
      var e=$(elm);
      e.val(fm2.formatAlias(e.val()));
      fm2.validateAlias(e.val());
   }
   ,validateAlias:function(val){
      if(!isset(fm2.buf.validateAlias)||fm2.buf.validateAlias!=val) fm2.buf.validateAlias=val;
      else return;
      $.get(fm2.conf.http_root+'index.php?ajax=1&elm=validateAlias&table='+fm2.buf.checkAliasSettings.table+'&id='+fm2.buf.checkAliasSettings.id+'&val='+$.URLEncode(val),function(data){
	 var ec=$('div.'+fm2.buf.checkAliasSettings.errcl);
	 switch(data){
	   default:
	   if(data.length) ec.html(data).show();
	   break;
	   case '1':
	      ec.hide();
	   break;
	 }
      });
   }
   ,formatAlias:function(str){
      return str
        .replace(/[^A-z0-9 \-\&.,\u00E5\u00E4\u00F6]/ig,'')
        .replace(/[ .,\-\&]/ig,'-')
        .replace(/[\u00E5\u00E4]/g,'a')
        .replace(/\u00F6/g,'o')
        .replace(/[\u00C5\u00C4]/g,'A')
        .replace(/\u00D6/g,'O')
        .replace(/[-]{2,}/ig,'-')
        .replace(/^[-]|[-]$/ig,'')
	.toLowerCase()
     ;
   }
   ,autoAlias:function(src,dst,lnk){
     fm2.autoAliasSwitch=lnk;
     var d=$('#'+dst);
     var s=$('#'+src);
     s.keyup(function(){
        if(!fm2.autoAliasSwitch) return;
	clearTimeout(fm2.buf.autoAliasTimer);
	fm2.buf.autoAliasTimer=setTimeout(function(){
           d.val(s.val());
   	   fm2.checkAliasStr(d);
	   d.keyup();
	},300);
     });
     var src=$('.'+dst+'-s').find('img').attr('src');
     src=src.replace(/(\-broken)?\.[^\.]+$/,'');
     var lnks=$('.'+dst+'-s');
     lnks.hover(function(){
        lnks.find('img').attr('src',src+(fm2.autoAliasSwitch?'-broken':'')+'.png');
     },function(){
        lnks.find('img').attr('src',src+(fm2.autoAliasSwitch?'':'-broken')+'.png');
     }).click(function(e){
        e.preventDefault();
	if(fm2.autoAliasSwitch){
	   fm2.autoAliasSwitch=0;
           lnks.find('img').attr('src',src+'-broken.png');
	}
	else{
	   fm2.autoAliasSwitch=1;
           lnks.find('img').attr('src',src+'.png');
           d.val(s.val());
	   fm2.checkAliasStr(d);
	   d.keyup();
	}
     });
   }
}
function getNum(){
	 incrNum++;
	 return incrNum;
}

function updateElm(arr){
	 if(!isset(arr)) return false;
	 jq.each(arr,function(k,v){
	     var elm=jq(k);
	     switch(v['mod']){
	        default:
		case 'replace':
		 if(elm.length>0){
		    elm.replaceWith(v['con']);
		 }
		 else if(isset(v['par'])){
		    if(v['last']=='1') jq(v['par']).append(v['con']);
		    else jq(v['par']).prepend(v['con']);
		 }
		break;
		case 'html':
		 elm.html(v['con']);
		 convertLinks(linkType,'a');
		break;
		case '+':
		var val=(elm.html()*1)+(v['con']*1);
		elm.html(val);
		break;
		case '-':
		var val=(elm.html()*1)-(v['con']*1);
		elm.html(val);
		break;
		case 'remove':
		elm.remove();
		break;
	     }
	 });
}

function isset(v){
	 if(v===undefined) return false;
	 else return true;
}

function strToJson(str){
	 return eval('('+str+')');
}

function processForm(form){
    setLoading(1);
    fm2.beforeUnloadChk['form']=0;
    $(form).find('input[type=submit]').attr('disabled','disabled');
    $('.form-error').html('');
    $(form).ajaxSubmit(function(data){
	  var r=processResponse(data);
	  if(data.substr(0,4)=='ajax'){
	   	  if(isset(r.resetForm)) $(form).resetForm();
		  $(form).find('input[type=submit]').removeAttr('disabled');
	  }
	  else alert(data);
	  setLoading(0);

    });
    setTimeout(function(){
       $(form).find('input[type=submit]').removeAttr('disabled');
    },2000);
   return false;
}

function setJavascripts(arr){
	 if(!isset(arr)) return false;
	 jq.each(arr,function(k,v){
	      var id='js-'+k;
	      if(jq('#'+id).length>0) jq('#'+id).html(v);
	      else if(!isset(javascriptArr[k])){
	        jq('body').append("<script type='text/javascript' id='"+id+"'>"+v+"</script>");
		javascriptArr[k]=1;
	      }
	 });
}

function processResponse(data){
  if(data.substr(0,4)=='ajax') {
      var r=strToJson(data.substr(4));
      if(isset(r.redirect)) window.location.replace(r.redirect);
      if(isset(r.alert)) alert(r.alert);
      if(isset(r.stopRefTimer)) clearTimeout(loginRefreshTimer);
      else if(isset(r.logged)) promptLoginRefresh();
      setJavascripts(r.js);
      updateElm(r.data);
      jq.each(r.onload,function(k,v){
           eval(v);
      });
      addMenus(r.menu);
      return r;
  }
  else if(isset(data)){
      if(data.length>0) alert(data);
  }
}

function delItem(id,elm,msg,rl){
	 var cn=confirm(msg);
	 if(cn){
	 	var t=jq(id);
	 	if(isset(rl)||t.length<1) return true;
		setLoading(1);
	 	var url=jq(elm).attr('href')+'&ajax=1';
	 	jq.get(url,function(data){
		   processResponse(data);
		   setLoading(0);
		});
	 }
	 return false;
}

function makeUrl(str){
	 var url='index.php?ajax=1';
	 var sa=str.substr(1).split('/');
	 var steps=sa.length/2;
	 var c=0;
	 for(n=0;n<steps;n++){
	     var k=sa[(n*2)];
	     var v=sa[((n*2)+1)];
	     if(isset(k)&&k){
	        if(!isset(v)) v='';
	        url=url+'&'+k+'='+v;
	     } 
	 }
	 return url;
}

function updateState(str,raw){
	 if(str.length<1||noReload){
	   noReload=false;
	   return false;
	 }
	 setLoading(1);
	 if(isset(raw)){
	  var url=str;
	 }
	 else{
	  var url=makeUrl(str);
	 }
	 jq.get(url,function(data){
	     setLoading(0);
	     processResponse(data);
	 });
}

function setLoading(sv){
	 if(sv=='1'||sv==1){
	   isLoading=1;
	   if(jq('.loading').is(':hidden')) jq('.loading').fadeIn();
	 }
	 else{
	     isLoading=0;
	     jq('.loading').fadeOut();
	 }
}

function hasClick(e){
	 if(e.hasEvent('click')||e.attr('onclick')) return true;
	 else return false;
}

function smUrl(url){
	 if(!isset(url)) return '';
	 return url.replace(/^http\:\/\/w{3}?\.|\/[a-z\.]+\??[^\/]*$/g,'');
}

function isLocal(url){
	 if(!isset(url)) return true;
	 var w=url.match(/^[a-zA-Z0-9]+\:\/\//);
	 if(w){
	    if(smUrl(url)==smLocal) return true;
	    else return false;
	 }
	 else return true;;
}

function convertLinks(tpe,sel,force){
	 if(!isset(sel)) var sel='a';
	 switch(tpe){
	 case '2':
	 jq(sel).each(function(a){
	      var e=jq(this);
                 if(!hasClick(e)&&isLocal(e.attr('href'))&&!e.hasClass('no-parse')
		 &&!e.hasClass('article-gallery')||isset(force)){
  	         e.attr('href',convertLink(e.attr('href')));
	      }
	 });
	 break;
	 }
}

function convertLink(txt){
	 if(isset(txt)){
          var t=txt.replace(/[\=|\&]|\&amp\;/g,'/').replace(/\?/,'#');
	  if(!t.match(/\#/)) t=t+'#home';
	  return t;
	 }
	 else return '#home';
}

function setButton(cls){
	 jq('#editmenu').html(getMenu(cls));
}

function initButtons(arr){
	 toggleHoverMenu();
	 jq.each(arr,function(btn,v){
  	    initButton(btn);
	 });
}

function addMenus(arr){
	 jq.each(arr,function(cls,v){
	    menuStructure[cls]=v;
	    initButton(cls);
	 });
}

function array_size(obj){
   var size = 0;
   $.each(obj,function(k,v){
      size++;
   });
   return size;
}

function getMenu(cls){
	 var s=menuStructure[cls];
	 var r="<ul id='"+cls+"_btn' class='SimpleContextMenu'>";
	 jq.each(s.btn,function(k,v){
	    r=r+"<li class='adminContextMenu'>";
	    switch(k){
	    	case 'edit':
		 r=r+"<a href='#' onclick='openEditDiv(\""+s.table+"\",\""+s.id+"\"); return false;'>"
                 +"<img src='images/icons/page_edit.gif' border='0'> "+langArr['edit']+" "+s.table+"</a>";
		break;
		case 'delete':
		 r=r+"<a onclick=\"return delItem('#list-"+s.table+"-"+s.id+"',this,'"+langArr['confirm_del'].replace('[table]',s.table)+"')\""
+"href='?"+fmSerial+"table="+s.table+"&amp;"+fmSerial+"id="+s.id+"&amp;mode=del&amp;back_str="+s.back_str+"'>"
		 +"<img src='images/icons/page_delete.gif' border='0'> "+langArr['delete']+"</a>";
		break;
		case 'order':
		r=r+"<a href='#' onclick='openEditDiv(\""+s.table+"\",\""+s.id+"\",\"order\");"
		+" return false;'><img src='images/icons/arrow_up.gif' border='0'> "+langArr['order']+"</a>";
		break;
		case 'new':
		jq.each(v,function(ck,cv){
		  var pvs='';
		  if(cv.par_t&&cv.par_id){
		      if(!isset(cv.prevval)) cv.prevval={};
		      cv.prevval["prevval[__rel__]["+cv.par_t+"]"]=cv.par_id;
		  }
		  if(isset(cv.prevval)){
  		    if(array_size(cv.prevval)){
  		      $.each(cv.prevval,function(pk,pv){
		         if(pvs.length) pvs=pvs+',';
		         pvs=pvs+'"prevval['+pk+']":"'+pv+'"';
		      });
		      pvs=',{'+pvs+'}';
		    }
		  }
		  r=r+"<a href='#' onclick='openEditDiv(\""+s.table+"\",\""+s.id+"\",\"new\",\""+cv.par_t+"\",\""+cv.par_id+"\""
		      +pvs
		      +");return false;'>"
		  +"<img src='images/icons/page_new.gif' border='0'> "+langArr['add']+"</a>";
		});
		break;
		case 'crop':
		jq.each(v,function(ck,crop_fld){
		  r=r+"<a href='#' onclick='openCropDiv(\""+s.table+"\",\""+s.id+"\",\"order\",\""+crop_fld+"\"); return false;'>"
		  +"<img src='images/icons/arrow_up.gif' border='0'> "+langArr['crop']+"</a>";
		});
		break;
		case 'blacklist':
		r=r+"<a href='#' onclick='blacklist(\""+s.table+"\","+v.id+","+v.bl+",\""+cls+"\");return false;'>"+langArr['blacklist']+"</a>";
		break;
	    }
	    r=r+"</li>";
	 });
	 jq.each(s.other,function(k,v){
           r=r+"<li class='adminContextMenu'>";
	   r=r+"<a href='"+(isset(v.href)?v.href:"#")+"'"
	       +(isset(v.click)?" onclick='"+v.click.replace(/\'/g,'"')+"return false;'":"")
	       +(isset(v.other)?v.other:"")
	       +">"
	       +(isset(v.image)?"<img src='"+v.image+"' border='0'> ":"")
	       +v.text+"</a>";
	   r=r+"</li>";
         });
	 return r+'</ul>';
}

function toggleHoverMenu(tg){
	 if(hoverMenu==2||!hoverMenu){
	    if(isset(tg)){
	     var lt=langArr['hoverMOn'];
	     hoverMenu=1;
	     }
	     else{
	     var lt=langArr['hoverMOff'];
	     }
	 }
	 else{
	    if(isset(tg)){
	     var lt=langArr['hoverMOff'];
	     hoverMenu=2;
	     }
	     else{
	     var lt=langArr['hoverMOn'];
	     }
	 }
//	 $.cookie('hoverMenu', hoverMenu);
 	$('#admin-toggle-hover').html('<a href="#" '
	+'onclick="toggleHoverMenu(1);return false;">'+lt+'</a>');

}

function blacklist(tbl,id,bl,cls){
      setLoading(1);
	 $.get('index.php?elm=blacklist&table='+tbl+'&id='+id+'&bl='+bl+'&cls='+cls+'&ajax=1',function(data){
	      setLoading(0);
              processResponse(data);
	 });
}

function getContent(elm){
	 var url=jq(elm).attr('href')+'&ajax=1';
	 updateState(url,1);
	 return false;
}

function slideOnHover(sel,tar){
	 if(!isset(sel)||!isset(tar)) return;
	 if(jq(sel).length<=0) return;
	 var ch=0;
	 var timer;
	 jq(sel).hover(function(){
	     var tp=jq(sel);
             jq(tar).css('left',tp.position().left);
	     if($.browser.msie) jq(tar).css('top',(tp.position().top+tp.height()));
	     ch=1;
	     jq(tar).slideDown(400).hover(function(){
	       ch=1;
	     },function(){
	        timer=setTimeout(function(){
		   if(!ch) jq(tar).slideUp(400);
		},400);
	       ch=0;
	     });
	 },function(){
	     ch=0;
	     timer=setTimeout(function(){
	     	     if(!ch) jq(tar).slideUp(400);
		   },400);
	 });
}

function setHash(str){
    if(isset(str)) location.hash=str;
}

function _GETU(gk,url){
   var u=isset(url)?url:location.href;
   u=u.replace(/([^\?\#]*[\?\#])?/,'').replace(/&amp;/g,'&').split('&');
   for(var n=0;n<u.length;n++){
      var ex=u[n].split('=');
      if(ex[0]==gk){
        return ex[1];
      }
   }
}

function _GET(k){
    var sp=location.hash.substr(1).split('/');
    var st=sp.length/2;
    for(var n=0;n<st;n++){
      if(sp[(n*2)]==k){
        return sp[((n*2)+1)];
      }
    }
}

function getvals(a,d){
    if(isset(a)||isset(d)){
     var sp=location.hash.substr(1).split('/');
     var st=sp.length/2;
     var r='#';
     var ek={};
      for(var n=0;n<st;n++){
       var k=sp[(n*2)];
       var v=sp[((n*2)+1)];
       if(!in_array(v,d)){
         ek[k]=v;
       }
      }
      jq.each(a,function(k,v){
        ek[k]=v;
      });
      var f=1;
      jq.each(ek,function(k,v){
        if(isset(k)&&isset(v)){
        if(f){
         r=r+k+'/'+v;
         f=0;
        }
        else r=r+'/'+k+'/'+v;
	}
      });
      return r;
    }
  return location.hash;
}

function in_array(value,arr) {
    if(!isset(value)||!isset(arr)) return false;
        for (var i=0; i < arr.length; i++) {
          if (arr[i] === value) {
            return true;
          }
        }
   return false;
}

function getKey(val,arr){
    if(isset(val)&&isset(arr)){
      var match;
      jq.each(arr,function(k,v){
         if(v.toString()==val.toString()) match=k;
      });
    return match;
   }
}

function makeSortable(sel,tp){
	 switch(tp){
	 default:
	   jq(sel).sortable({ placeholder: 'sortable-hl' });
	 break;
	 }
}
function moreFields(id){
    jq('#writeroot'+id).append('<div>'+jq('#readroot'+id).html()+'<\/div>');
}
function expandTextInput(sl,maxwv){
	 $(sl).each(function(i){
	     var origW=$(this).width();
	     if(isset(maxwv)) var maxw=maxwv;
	     else var maxw=$(this).parent().width()-10;
	     setTIWidth(this,origW,maxw);
	     $(this).keyup(function(e){
	     	    setTIWidth(this,origW,maxw);
	     });
	 });
}
function setTIWidth(elm,origW,maxw){
	 var mrg=25;
	 var wd=$(elm).width();
	 var cw=getTextWidth(elm,1);
	 var tw=cw+mrg;
	 if(tw>origW){
	   if(tw<maxw){
  	     $(elm).width(tw);
	   }
	   else $(elm).width(maxw);
	 }
	 else $(elm).width(origW);
}
function getTextWidth(sel,val){
	 var e=$(sel);
	 var id='getTextWidth';
	 if($('#'+id).length<=0){
	    $('body').append("<span id='"+id+"' style='display:none;'></span>");
	 }
	 var s=$('#'+id);
	 s.css('font-family',e.css('font-family'))
	 .css('font-size',e.css('font-size'));
	 if(!isset(val)) var v=e.html();
	 else var v=e.val();
	 s.html(v.replace(/\s/g,'&nbsp;').replace(/\</g,'&#60;'));
	 return s.width();
}
function preloadImages(arr){
	 if(isset(arr)){
	    $.each(arr,function(k,v){
	      $(new Image()).attr('src',v);
	    });
	 }
}
function treeMenu(sel){
   $(sel).click(function(){
      $(this).parent().find('>ul').slideToggle('fast');
    });
}
function delThis(elm){
    jq(elm).parent().remove();
}
function processPromptLRForm(box){
  var vals='';
  box.find('input:checked').each(function(){
    vals=vals+'&'+$(this).attr('name')+'='+$(this).val();
  });
  $.get('index.php?elm=refreshSession&ajax=1'+vals,function(data){
     processPromptLRResponse(data,box);
  });
}
function processPromptLRResponse(data,box){
   var res=strToJson(data);
   if(res.ok==1){
      $.cookie(fmSerial+'keepLoggedAcc','0');
      box.html(res.msg);
      setTimeout(function(){
         promptLoginRefresh();
         box.dialog('close');
      },1500);
   }
   else{
     box.html(res.msg).find('form').submit(function(event){
            event.preventDefault();
            promptLoginReLogin(box);
         });
     box.append($('<span></span>').html(langArr['btnLogin'])
        .button().click(function(){
	    promptLoginReLogin(box);
         }));
    }
}
function promptLoginReLogin(box){
  $.post(box.find('form').attr('action'),box.find('form').serialize(),function(data){
     processPromptLRResponse(data,box);
  });
}
function promptLoginRefresnAction(){
       $.cookie(fmSerial+'keepLoggedAcc','1');
       if($.cookie(fmSerial+'keepLogged')){
          $.get('index.php?elm=refreshSession&ajax=1',function(data){
	     var res=strToJson(data);
	     if(res.ok==1){
	       promptLoginRefresh();
	     }
	     else{
	       $.cookie(fmSerial+'keepLogged',null);
	       promptLoginRefresnAction();
	     }
	  });
          return;
       }
       var box=getDiv('promtLR',langArr['msgRefreshSession'],{'title':langArr['titleAlert']});
       box
        .append("<br><input type='checkbox' name='keeplogged' value='1' id='keeplogged'><label for='keeplogged'>"
          +langArr['cbKeepLogged']+"</label><br>")
        .append("<input type='checkbox' name='keeploggedsave' value='1' id='keeploggedsave'><label for='keeploggedsave'>"
          +langArr['cbSaveUS']+"</label>")
        .append($('<div></div>').addClass('system-alertbns')
         .append($('<span></span>').html(langArr['btnRefresh']).addClass('system-alert-button').button()
          .click(function(){
	       processPromptLRForm(box);
	   }
	 ))
        .append($('<span></span>').html(langArr['btnCancle']).addClass('system-alert-button').button()
          .click(function(){
	     box.dialog('close');
	   }
	 ))
	)
	;
       
       box.dialog({
           modal:true
	   ,beforeClose:function(){
	     clearTimeout(loginRefreshTimerAH);
	   }
         });
       autoHideLoginPrompt(box);
}
function autoHideLoginPrompt(box){
   clearTimeout(loginRefreshTimerAH);
   loginRefreshTimerAH=setTimeout(function(){
      if($.cookie(fmSerial+'keepLoggedAcc')=='0'){
         box.dialog('close');
         promptLoginRefresh();
      }
      else{
         autoHideLoginPrompt(box);
      }
   },1000);
}
function promptLoginRefresh(){
    clearTimeout(loginRefreshTimer);
    loginRefreshTimer=setTimeout(function(){
         promptLoginRefresnAction();
    },loginRefreshLifetime*1000);
}
function getDiv(id,con,attr,visible){
   if($('#'+id).length!=0){
      $('#'+id).remove();
   }
   var r=$('<div></div>').attr('id',id);
   if(isset(con)) r.html(con);
   if(isset(attr)){
     $.each(attr,function(k,v){
       r.attr(k,v);
     });
   }
   if(isset(visible)){
     if(!visible) r.hide();
   }
   else r.hide();
   return r;
}
function basename(fn){
   return fn.replace(/((^.*\/)|(\?.*))?/ig,'');
}

