//global functions and vars
var SITE_URL='/';

var IE = document.all?true:false;
if(!IE) document.captureEvents(Event.KEYPRESS);
if(!IE) document.captureEvents(Event.MOUSEMOVE);

function i18n(text){
    if(typeof(i18n_def)=='object' && typeof(i18n_def[text])=='string') return i18n_def[text];
    else return text;
}

function getXmlHttpRequestObject(){
    if(window.XMLHttpRequest) return new XMLHttpRequest();
    else if(window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP");
}

function addHandler(object, event, handler){
    if(!IE) object.addEventListener(event, handler, false);
    else object.attachEvent('on' + event, handler);
}
function removeHandler(object, event, handler){
    if(!IE) object.removeEventListener(event, handler, false);
    else object.detachEvent('on' + event, handler);
}

function dump(obj, obj_name) {
    var result = '';
    for (var i in obj)
        result += obj_name + '.' + i + ' = ' + obj[i] + '\n';
    return result;
}

function getCharCode(e){
    if(!e) if(window.event) e=window.event;
    if(typeof(e.keyCode)=='number') char_code=e.keyCode;
    else if(typeof(e.which)=='number') char_code=e.which;
    else if(typeof(e.charCode)=='number') char_code=e.charCode;
    return char_code;
}
function uuid(){
    return ((new Date()).getTime() + "" + Math.floor(Math.random() *1000000)).substr(0, 18);
}
String.prototype.trim=function() { return this.replace(/^\s+|\s+$/g, ''); }
String.prototype.explode=function(sep){
    if(sep.length!=''){
        var res_arr=Array();
        var str=this;
        var i=0;
        while((pos=str.indexOf(sep))!=-1){
            res_arr[i++]=str.substr(0,pos);
            str=str.substr(pos+sep.length);
        }
        res_arr[i++]=str.substr(0,str.length);
        if(res_arr.length>0) return res_arr;
        else Array(this);
    }return false;
}
String.prototype.get_in_str=function(fstr,lstr,limit,trim){
    if(!limit) var limit=0;
    var str=this;
    var temp_arr=Array();
    var lcnt=0;
    while(str.indexOf(fstr)!=-1 && (limit ? lcnt<limit : true)){
        var fpos=str.indexOf(fstr)+fstr.length;
        str=str.substr(fpos);
        var lpos=str.indexOf(lstr);
        var val=(lpos!=-1 ? str.substr(0,lpos) : str);
        temp_arr[temp_arr.length]=(trim ? val.trim() : val);
        str=str.substr(lpos+lstr.lenght);
        lcnt++;
    }
    return (limit==1 ? (temp_arr[0] ? temp_arr[0] : '') : temp_arr);
}
Array.prototype.inArray=function(obj){
    var len=this.length;
    for(var x=0; x<=len; x++){
        if(this[x]==obj) return true;
    }
    return false;
}
function getSelectionStart(o){
    if(o.createTextRange){
        var r=document.selection.createRange().duplicate();
        r.moveEnd('character',o.value.length);
        if(r.text=='') return o.value.length;
        return o.value.lastIndexOf(r.text);
    }else return o.selectionStart;
}
function getSelectionEnd(o) {
    if(o.createTextRange){
        var r=document.selection.createRange().duplicate();
        r.moveStart('character',-o.value.length);
        return r.text.length;
    }else return o.selectionEnd;
}

function selectionText(target,value){
    if(typeof(target)=='string') target=document.getElementById(target);
    if(document.selection){
        target.focus();
        sel=document.selection.createRange();
        if(value) sel.text=value;
        else return sel.text;
    }else if(target.selectionStart || target.selectionStart=='0'){
        var startPos = target.selectionStart;
        var endPos = target.selectionEnd;
        if(value){
            target.value = target.value.substring(0, startPos)+value+target.value.substring(endPos, target.value.length);
        }else return target.value.substring(startPos, endPos);
    }
}
function input_check_numeric(elemID,after_dot,max){
    if(!after_dot) after_dot=0;
    elem=document.getElementById(elemID);
    var pos=getSelectionStart(elem)+1;
    var temp_str='';
    elem.value=elem.value.replace(',','.');
    for(i=0; i<elem.value.length; i++){
        ch=elem.value.substr(i,1);
        if((ch.charCodeAt(0)>=48 && ch.charCodeAt(0)<=57) || (after_dot>0 && ch=='.' && temp_str.indexOf('.')==-1)) temp_str+=ch;
    }
    if((pos=temp_str.indexOf('.'))!=-1) temp_str=temp_str.substr(0,pos+after_dot+1);
    if(parseFloat(temp_str)>max) temp_str=max;
    elem.value=temp_str;
}

if(!getCookie('newWinCounter')) createCookie('newWinCounter','0',1,'/');
function open_window(link,w,h){
    var newWinCounter=getCookie('newWinCounter');
    var top = (screen.height - h) / 2;
    var left = (screen.width - w) / 2;
    var win = "width="+(w+20)+",height="+(h+20)+",top="+top+",left="+left+",menubar=no,location=no,resizable=yes,scrollbars=yes";
    newWin = window.open(link,'newWin'+newWinCounter,win);
    newWin.focus();
    createCookie('newWinCounter',newWinCounter+1,1);
    return newWin;
}
function createCookie(name,value,days,path,domain) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = '; expires='+date.toGMTString();
    }else var expires = '';
    if(domain) domain='; domain='+domain;
    else domain='';
    document.cookie = name+'='+value+expires+';'+(path ? ' path='+path : '')+domain;
}

function getCookie(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 eraseCookie(name) {
    createCookie(name,"",-1);
}

function clear_select(select_elem,first_text){
    while (select_elem.firstChild) {
        select_elem.removeChild(select_elem.firstChild);
    }
    if(first_text) select_elem.options[0]=new Option(first_text,0);
}
function input_focus(inp,text){
    if(typeof(inp)=='string') var inp=document.getElementById(inp);
    var is_pass=(inp.type=='password');
    if(inp.value=='') inp.value=text;
    if(is_pass && !IE) inp.type='text';
    function inp_focus(e){
        if(is_pass && !IE) inp.type='password';
        if(inp.value.trim()==text) inp.value='';
    }
    function inp_blur(e){
        if(inp.value.trim()==''){
            inp.value=text;
            if(is_pass && !IE) inp.type='text';
        }
    }
    addHandler(inp,'focus',inp_focus);
    addHandler(inp,'blur',inp_blur);
}
function dataTable(table_id,head_tr){
    var tabla=document.getElementById(table_id);
    tabla.className='dataTable';
    for(i=0; i<tabla.rows.length; i++){
        if(!(head_tr && i==0)) dataTableTr(tabla.rows[i]);
    }
}
function dataTableTr(obj){
    obj.className='dataTableRow';
    function msover(e){
        obj.className='dataTableRowOver';
    }
    function msout(e){
        obj.className='dataTableRow';
    }
    function msclick(e){
        if(obj.className!='dataTableRowSelected'){
            obj.className='dataTableRowSelected';
            removeHandler(obj,'mouseover', msover);
            removeHandler(obj,'mouseout', msout);
        }else{
            obj.className='dataTableRowOver';
            addHandler(obj,'mouseover', msover);
            addHandler(obj,'mouseout', msout);
        }
    }
    addHandler(obj,'mouseover', msover);
    addHandler(obj,'mouseout', msout);
    addHandler(obj,'click', msclick);
}
function loadContent(url,target,loader,form,onload){
    var receiveReq=getXmlHttpRequestObject();
    if(typeof(target)=='string') target=document.getElementById(target);
    if(typeof(form)=='string') form=document.getElementById(form);
    var img_src='loading.gif';
    if(typeof(loader)=='string'){
        var tarr=loader.split(':');
        loader=tarr[0];
        if(tarr[1]) img_src=tarr[1];
        loader=document.getElementById(loader);
    }
    params='ajax=1';
    if(form){
        for(i=0; i<form.length; i++) params+='&'+form[i].name+'='+form[i].value;
    }

    if(loader) loader.innerHTML='<img src="/arts/'+img_src+'" alt="" border="0" title="" />';
    receiveReq.open("POST", SITE_URL+url, true);
    receiveReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    receiveReq.setRequestHeader("Content-length", params.length);
    receiveReq.setRequestHeader("Connection", "close");
    receiveReq.onreadystatechange=function(){
        if(receiveReq.readyState==4){
            var respText=receiveReq.responseText;
            if(loader) loader.innerHTML='';
            target.innerHTML=respText;
            if(typeof(onload)=='function') onload();
            var script_arr=respText.get_in_str('<script type="text/javascript">','</script>');
            for(i=0; i<script_arr.length; i++) eval(script_arr[i]);
        }
    }
    receiveReq.send(params);
}

