﻿var getCookie=new Object();
getCookie.get=function(name)
{
    var start=document.cookie.indexOf(name+"=");
    var len=start+name.length+1;
    if((!start)&&(name!=document.cookie.substring(0,name.length))){return null;}
    if(start==-1)return null;
    var end=document.cookie.indexOf(";",len);
    if(end==-1)end=document.cookie.length;
    return unescape(document.cookie.substring(len,end));
};

var gadgetDir = {};
gadgetDir.sideBar = Class.create();
gadgetDir.sideBar.prototype = {
    initialize : function(){
        this.browseLis = [];
        this.catLis = [];
        this.rawUrl = this.setRawUrl(window.location.href);
        this.queryString = window.location.href.split('?');
        this.setLang();
        this.createSideBar();
        this.setSelctedLi();        
    },
    setRawUrl : function(r_url){
        var qry = r_url.split('?');
        var s_url = qry[0];
        var rw_url='';
        if(qry){
            if(qry.length > 1){
                qry = qry[1].split('&');
                for(var i=0;i<qry.length;i++){
                    if(qry[i].indexOf('pageIndex') == -1) rw_url+=qry[i]+'&';        
                }
                rw_url = rw_url.substring(0,rw_url.length-1);
                s_url = s_url + '?' + rw_url;
                return s_url;
            }
        }
        return r_url;
    },
    createSideBar: function(){
        this.setLis();        
    },
    setLang: function(){
        var langName = $('langName');
        var langCombo = $('langCombo');
        if(!langCombo) return;
        var lan = this.getQueryString('lang');
        var found = false;
        if(lan || lan != "false"){
            for(var i=0; i<langCombo.options.length; i++){
                if(langCombo.options[i].value == lan){
                    langName.innerHTML = langCombo.options[i].innerHTML;
                    found = true;
                    break;
                }    
            }
            if(!found) langName.innerHTML = "All";
        }    
    },
    setLis: function(){
        var bl = $('browseUL');
        if(bl) this.browseLis = bl.getElementsByTagName('li');
        var cl = $('catUL');
        if(cl) this.catLis = cl.getElementsByTagName('li');        
    },
    setSelctedLi: function(){
        var val = this.getQueryString('browse');
        this.selectLi(this.browseLis,val,'browse');
        val = this.getQueryString('cat');
        this.selectLi(this.catLis,val,'cat');        
    },
    selectLi: function(lis,val,liStr){
        if(lis.length == 0) return;
        var isListin = false;
        for(var i=0; i<lis.length; i++){this.setLinks(lis[i],liStr,i,val); Element.removeClassName(lis[i],'selected');}
        if(typeof(val) != 'undefined' && val != "false"){
            for(var i=0; i<lis.length; i++){
                var texts = lis[i].firstChild.innerHTML.split(' ');
                if(texts[1] == val){ Element.addClassName(lis[i],'selected');isListin = true; break;}
            }
        }
        if(!isListin) lis[0].className = 'selected';        
    },
    setLinks: function(li,liStr,index,val){
        var query = this.rawUrl.split('?');
        var url = query[0];
        if(liStr == "browse"){
            var s=(index==0)?'popular':'recent';
            if (query.length > 1) {
                if(val && val != "false") li.firstChild.href = url + "?" + query[1].replace('='+val,'='+s);
                else li.firstChild.href =  this.rawUrl + '&browse=' + s;
            }else li.firstChild.href = url + '?browse=' + s;
        }else if(liStr == "cat"){
            if (query.length > 1) {
                if(val && val != "false") li.firstChild.href = url + "?" + query[1].replace('='+val,'='+index);
                else li.firstChild.href =  this.rawUrl + '&cat=' + index;
            }else li.firstChild.href = url + '?cat=' + index;
        }
    },
    getQueryString: function (key){
        var page = new gadgetDir.pageQuery(window.location.search);
        return unescape(page.getValue(key));
    }
}

gadgetDir.pageQuery = Class.create();
gadgetDir.pageQuery.prototype = {
        initialize : function(q) {
            if(q.length > 1) this.q = q.substring(1, q.length);
            else this.q = null;
            this.keyValuePairs = new Array();
            if(q) {for(var i=0; i < this.q.split("&").length; i++) {this.keyValuePairs[i] = this.q.split("&")[i];}}
        },
        getKeyValuePairs: function() {return this.keyValuePairs;},
        getValue: function(s) {
            for(var j=0; j < this.keyValuePairs.length; j++) {
                if(this.keyValuePairs[j].split("=")[0] == s) return this.keyValuePairs[j].split("=")[1];
            }
            return false;
        },
        getParameters: function() {
            var a = new Array(this.getLength());
            for(var j=0; j < this.keyValuePairs.length; j++) {a[j] = this.keyValuePairs[j].split("=")[0];}
            return a;
        },
        getLength: function(){ return this.keyValuePairs.length;}
    }

function toggleView(isGadgetview){
    var container = document.getElementById('contentbar');
    //var descs = Element.getElementsByClassName(container,"detailedDesc");          
    //var descs = Element.getElementsBySelector(container,"detailedDesc");          
    var descs = $('contentbar').getElementsBySelector(".detailedDesc");          
    var dv = $('detailedView');
    var vv = $('gadgetView');
    if(isGadgetview){
        if(descs){
            for(var i=0; i<descs.length; i++){
                if(descs[i].style.display == 'none')break;
                descs[i].style.display = 'none';
            }            
        }
    }else{
        if(descs){
            for(var i=0; i<descs.length; i++){
                if(descs[i].style.display == 'block')break;
                descs[i].style.display = 'block';
            }
        }        
    }                  
}
function sd(){
    new gadgetDir.sideBar();
}
function lc(){
    var langCombo = $('langCombo');
    var spanLang = $('spanLang');
    var langName = $('langName');
    spanLang.style.display = 'none';
    for(var i=0; i<langCombo.options.length; i++){
        if(langCombo.options[i].innerHTML == langName.innerHTML){
            langCombo.selectedIndex= i;
            break;
        }    
    }
    langCombo.style.display = 'block';
}
function selChange(){
    var langCombo = $('langCombo');
    var spanLang = $('spanLang');
    var query = window.location.href.split('?');
    var url = query[0];
    var rw_url ='',s_url='';
    
    if(query.length > 1){
        query = query[1].split('&');
        for(var i=0;i<query.length;i++){
            if(query[i].indexOf('pageIndex') == -1) rw_url+=query[i]+'&';        
        }
        rw_url = rw_url.substring(0,rw_url.length-1);
        s_url = s_url + '?' + rw_url;
        
        var lan = new gadgetDir.pageQuery(window.location.search).getValue("lang");
        if(lan) query = url + s_url.replace(lan,langCombo.value);
        else query = s_url + '&lang='+langCombo.value;        
    }    
    else query = window.location.href + '?lang='+langCombo.value;
    window.location = query;            
}

