;

var xh_currentPage = "/";
var xh_lastPageVisited = null;
var xh_timer = null;
var xh_loadingPage = false;
var xh_pages = new Array();
var xh_scrolls = new Array();
var xh_history = false;
var xh_pointer = 0;
var xh_retryOpen = 0;
var xh_firstTime = true;

    var cloc = window.location.href.toString();
    
    if(cloc.indexOf(myServer+"/#") == -1){
    try{
        var dif = cloc.substring(myServer.length);
        if (dif != "/" || dif != "bout:blank"){
            window.open(myServer+"/#"+dif,"_self");
        }
    
    }catch(e){
        
    }
    }
    

function xh_install_ajax(){
    var anavi = xg.obj("ajax_navi");
    if (anavi == null){
    if (xg.browser.sName == "ie"){
        var _idiv = document.createElement("DIV");
        var myurl = window.location.toString();
        if (myurl.indexOf("#")>-1){
            xh_currentPage = "/";
            myurl = replaceStr(myurl,"/#/","/_ajaxnavi//");
        }
        _idiv.innerHTML = '<iframe src="'+myurl+'" id="ajax_navi" name="ajax_navi" width="1" height="1" onload="xh_frm_loaded(this)"></iframe>';
        _idiv.style.position = "absolute";
        _idiv.style.left = "-20px";
        _idiv.style.top = "-20px";
        _idiv.style.visibility = "hidden";
        document.body.appendChild(_idiv);
    }
    }
    xh_install_links();
}

function xh_frm_loaded(frm){
    var xurl =  frm.contentWindow.location.href;
    xurl = replaceStr(xurl,"/_ajaxnavi/","/#");
    xurl = xurl.substring(xurl.indexOf("/#")+2);
    if (xurl != xh_currentPage){
        window.open("#"+xurl,"_self");
    }
}

function xh_install_links(){

    if (xh_timer == null) xh_startMonitorURL();
    var lnks = document.getElementsByTagName("A");
    
    for(var i=0;i<lnks.length;i++){
        var _mylink = lnks[i].href;
        if (_mylink.startsWith(myServer)){
            _mylink = _mylink.substring(myServer.length);
            if (!_mylink.startsWith("/apps")){
                if (_mylink.startsWith("/#/")){
                      _mylink = _mylink.substring(3); 
                 }
                //if (_mylink.startsWith("#/")) _mylink = _mylink.substring(1); 

                var  lnk = lnks[i];
                if (typeof(lnk._lnk) == "undefined"){
                    lnks[i]._lnk = _mylink;
                    lnks[i].href = "#"+_mylink;
                    lnks[i].target = "_self";
                }
            }
        }
    }
    
}

function xh_open(ourl,scrollTop){
    if (xh_firstTime) xh_firstTime = false;
    
    var url = myServer+ourl;
    var db = xg.obj("doc_background");
    if(xh_history == false){
        xh_pages.add(ourl);
        var _top = 0;
        try {
            _top = db.scrollTop;
        }catch(e){}
        xh_scrolls.add(_top);
        xh_pointer ++;
    }
    xh_loadingPage = true;
    window.open("#"+ourl,"_self");
    var anavi = xg.obj("ajax_navi");
    if (anavi != null){
        var _url = myServer+"/_ajaxnavi/"+ourl;
        window.open(_url,"ajax_navi");
    }
    window.location.hash = ourl;
    xh_currentPage = ourl;
    
    var hash = null;
    url = decodeURIComponent(url);
    
    if (url.indexOf("#")>-1){
        hash = url.substring(url.indexOf("#")+1);
        url = url.substring(0,url.indexOf("#"));
    }
    
    if (url.indexOf("?")==-1) url = url+"?xreq=1";
    else url = url +"&xreq=1";
    
     
     var mainObject = xg.obj("main_articles");
        
    if (mainObject == null){
       mainObject = xg.obj("main_body");
    }

    //xh_startScrollingTop();
    xg.xhr.get(url, function(resObj){   
    
        if (resObj.length == 0 && xh_retryOpen < 4){
            xh_open(ourl,scrollTop);
            xh_retryOpen++;
        }else{
            xh_retryOpen = 0;
        }

        var html = resObj.trim();
        if (html.indexOf("<title>")==0){
            var title = html.substring(7,html.indexOf("</title>"));
            html = html.substring(html.indexOf("</title>")+8);
            document.title = title;
        }


        var ma = xg.obj("main_articles");
      
        if (ma != null){
            xg.setValue("main_articles",html);
        }else{
            var mb = xg.obj("main_body");
            xg.setValue("main_body",html);
        }
      
        xh_startScrollingTop();
        
        var db = xg.obj("doc_background");
        xh_executeScripts(db);

        try{
        if (typeof(resizeLayout) == "function"){
            resizeLayout();
        }
        }catch(e){}
        if (db != null){
            xh_startScrollingTop();

        }
        xh_install_links();
        xh_loadingPage = false;
        if (scrollTop != null){
            xh_gotoTag(scrollTop);
        }

        if (xh_history){
            var _top = xh_scrolls[xh_pointer];
            db.scrollTop = _top-50;
        }
        
        
    },null,"hlx.op.1329994056485114736485");
}

function xh_startScrollingTop(obj,top){
    var db = xg.obj("doc_background");
    if (db == null) return;
    db.scrollTop = 0;
    var mt = parseInt(db.scrollTop)-50;
    if (mt <= 0) return;
    db.scrollTop = mt;
    if (mt > 10){
        window.setTimeout("xh_startScrollingTop()",1);
    }else{
        db.scrollTop = 0;
    }
}

function xh_executeScripts(db){
	
    if (db == null) return;

    var allscripts = db.getElementsByTagName("script");
    
    for (var i=0;i<allscripts.length;i++){
            var child = allscripts[i];
            if (child.tagName =="SCRIPT"){
                try{
                    eval(child.text);
                }catch(e){
                }
            
            }
        }
        var afc = document.getElementById("article_full_content");
        if (afc == null) return;
        
    var allimgs = afc.getElementsByTagName("IMG");
    for (var i=0;i<allimgs.length;i++){
        var img = allimgs[i];
        img.style.cursor = "pointer";
        
            try{
                img.onclick = function(){
                    openGallery(this.src);
                }
            }catch(E){}
        
    }
}

function xh_gotoTag(hash){
    hash = hash.substring(1);
    var allA = document.getElementsByTagName("DIV");
    
    var t = "";
    for (var i=0;i<allA.length;i++){
        if (allA[i].id && allA[i].id == hash){
            var div = allA[i];
            div.style.position="relative";
            
            var _top =xh_getTop(div)-50;
            var db = xg.obj("doc_background");
            db.scrollTop = _top;
            return;
        }
    }
}

function xh_gotoBottom(){
    var db = xg.obj("doc_background");
    db.scrollTop = db.scrollHeight;
}

function xh_gotoTop(){
    var db = xg.obj("doc_background");
    db.scrollTop = 0;
}

var k=0;
function xh_startMonitorURL(){
    var myurl = window.location.href.toString();
    myurl = window.location.hash;
    k++;
    
    if (myurl.indexOf("#")>-1){
        myurl = myurl.substring(myurl.indexOf("#")+1);
    }else{
        myurl = "";
    }
    if (myurl == "bout:blank") myurl = "";
    
    if (myurl != xh_currentPage){
        if (!xh_loadingPage) {
            //try to determine if is history or not
            if (myurl == xh_pages[xh_pointer-2]){
                //console.log("history back");
                xh_pointer=xh_pointer-1;
                xh_history = true;
            }else
            if (myurl == xh_pages[xh_pointer]){
                xh_pointer++;
                //console.log("history next");
                xh_history = true;
            }
            else{
                xh_history = false;
                xh_pointer = xh_pages.length;
            }

            if (xh_firstTime){
                if (myurl.length > 0){
                    xh_open(myurl);
                }
            }else{
                xh_open(myurl);
            }
        }
    }
    xh_timer = window.setTimeout("xh_startMonitorURL()",10);
}

function hl_hideObject(objid){
        var mydiv = xg.obj(objid);
        mydiv.style.overflow = "hidden";
        var _height = parseInt(mydiv.offsetHeight);
        if (_height > 5){
            mydiv.style.height = (_height-10)+"px";
            window.setTimeout("hl_hideObject('"+objid+"')",1);
        }else{
            mydiv.style.overflow = "auto";
        }
}



function hl_blockUser(cid,wid){
    xg.xhr.post(myServer+"/ixp/bancomm/?cid="+cid+"&wid="+wid+"&delall=0", 
        function(resObj){
            alert(resObj);
        });
}

function hl_deleteComment(cid){
    var conf = confirm("Are you sure you want to delete this comment?");
    if (!conf) return;

    var obj = xg.obj("com_container_"+cid);
    obj.style.display = "none";
    var url = myServer + "/ixp/deletecomment/?cid="+cid;
    xg.xhr.post(url, function(resObj){
        var res = xg.xhr.parse(resObj);
        if (res.code == -1){
            alert("I can't delete this comment!'");
            obj.style.display = "block";
        }
    });

}

function hl_getFullComment(cid){
    var obj = xg.obj("comment_text_span_expand_"+cid);
    var before = xg.obj("comment_text_span_"+cid);
    var parent = xg.obj("comment_text_"+cid);
    parent.innerHTML = before.innerHTML+obj.innerHTML;
}


_window_onload= function(){
    var xh_hash = window.location.hash;
    if (xh_hash.length > 0){
        xh_hash = xh_hash.substring(1);
        if (xh_hash!="/"){
            xh_open(xh_hash,"");
        }
    }
}

function xh_getLeft(_object){
    var nLeft = 0;
    while (_object.offsetParent)
    {
        nLeft += _object.offsetLeft;
        _object = _object.offsetParent;
    }
    return nLeft;
}

function xh_getTop(_object){
    var nTop = 0;
    while (_object.offsetParent)
    {
        nTop += _object.offsetTop;
        _object = _object.offsetParent;
    }
    return nTop;
    }


var xh_gra = null;  //gallery right arrow
var xh_gla = null;      //gallery left arrow

function xh_install_click(obj,id,prev,next,url){
    
    obj.oncontextmenu = function(evt){
        return false;
    }
    
    obj.onmouseover = function(){
        //xh_fadeIn("div_ph_image_"+id);
    }
    
    obj.onmouseout = function(){
        if(!i_mouseInside(this)){
            //xh_fadeOut("div_ph_image_"+id);
        }
    }

    obj.onmouseup = function(evt){
        if (typeof(event) != "undefined") evt = event;
        var mx = evt.x;
        if  (mx > parseInt(obj.offsetWidth/2)){
            if (prev.length >0) window.open(url+prev,"_self");
        }else{
            
            if (next.length >0) window.open(url+next,"_self");
        }
    }
}

function xh_setOpacity(level,id) {
var element = xg.obj(id);
if (element == null) return;
  element.style.opacity = level;
  element.style.MozOpacity = level;
  element.style.KhtmlOpacity = level;
  element.style.filter = "alpha(opacity=" + (level * 100) + ");";
}

var xh_fade_duration = 100;  /* 1000 millisecond fade = 1 sec */
var xh_fade_steps = 20;       /* number of opacity intervals   */
var xh_fade_delay = 5000;     /* 5 sec delay before fading out */

function xh_fadeIn(id){
    var o = xg.obj(id);
    
  for (i = 0; i <= 1; i += (1 / xh_fade_steps)) {
    setTimeout("xh_setOpacity(" + i + ",'"+id+"')", i * xh_fade_duration);
  }
}

function xh_fadeOut(id) {
  for (i = 0; i <= 1; i += (1 / xh_fade_steps)) {
    setTimeout("xh_setOpacity(" + (1 - i) + ",'"+id+"')", i * xh_fade_duration);
  }
}

function xh_isUrl(s) {
    var regexp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
    return regexp.test(s);
}




