PopUp = function(autoapply){
    this.types = [];
    this.defaults = {
        width:470,
        height:465,
        top:0,
        left:0,
        location:false,
        resizable:false,
        scrollbars:false,
        status:false,
        toolbar:false,
        menubar:false,
        center:true,
        title:""
    }
    this.addType({
        name:"standard",
        location:false,
        resizable:false,
        scrollbars:true,
        status:false,
        toolbar:false,
        menubar:false
    });
    if(autoapply) this.apply();
}
o = PopUp.prototype;
o.apply = function(){
    var links = document.getElementsByTagName("a");
    if(!links) return;
    for(var i=0;i<links.length;i++){
        var l = links[i];
        if(l.className.indexOf("popup") > -1){
            this.attachBehavior(l,this.getType(l));
        }
    }
}
o.addType = function(type){
    for(var prop in this.defaults){
        if(type[prop] == undefined) type[prop] = this.defaults[prop];
    }
    this.types[type.name] = type;
}
o.getType = function(l){
    for(var type in this.types){
        if(l.className.indexOf(type) > -1) return type;
    }
    return "standard";
}
o.attachBehavior = function(l,type){
    var t = this.types[type];
    l.title = t.title;
    l.popupProperties = {
        type: type,
        ref: this
    };
    l.onclick = function(){
        this.popupProperties.ref.open(this.href,this.popupProperties.type);
        return false;
    }
}
o.booleanToWord = function(bool){
    if(bool) return "yes";
    return "no";
}
o.getTopLeftCentered = function(typeObj){
    var t = typeObj;
    var r = {left:t.left, top:t.top};
    var sh = screen.availHeight-20;
    var sw = screen.availWidth-10;
    if(!sh || !sw) return r;
    r.left = (sw/2)-(t.width/2);
    r.top = (sh/2)-(t.height/2);
    return r;
}
o.getParamsOfType = function(typeObj){
    var t = typeObj;
    var c = this.booleanToWord;
    if(t.center){
        var tc = this.getTopLeftCentered(typeObj);
        t.left = tc.left;
        t.top = tc.top;
    }
    var p = "width="+t.width;
    p+=",height="+t.height;
    p+=",left="+t.left;
    p+=",top="+t.top;
    p+=",location="+c(t.location);
    p+=",resizable="+c(t.resizable);
    p+=",scrollbars="+c(t.scrollbars);
    p+=",status="+c(t.status);
    p+=",toolbar="+c(t.toolbar);
    p+=",menubar="+c(t.menubar);
    return p;
}
o.open = function(url,type){
    if(!type) type = "standard";
    var t = this.types[type];
    var p = this.getParamsOfType(t);
    var w = window.open(url,t.name,p);
    if(w) w.focus();
    return false;
}
$(document).ready(function() {
    
    popup = new PopUp();
    popup.apply();
    
    $(function(){
        $('form').jqTransform({imgPath:'jqtransformplugin/img/'});
    });
    
    $("#lng ul li:last-child").addClass("last");
    $("#sidebar ul li:last-child").addClass("last");
    
    $(".bucket").hover(function() {
        $(this).find(".bucket-subline").addClass("over");
    }, function() {
        $(this).find(".bucket-subline").removeClass("over");
    });
    $(".buckets div:last-child").addClass("last");
    
    $("#footer li").hover(function() {
        $(this).addClass("over");
    }, function() {
        $(this).removeClass("over");
    });
    
    $(".tabContainer div:first").addClass("current");
     $("ul.tabNav li:first").addClass("current");
    $('ul.tabNav a').click(function() {
        var curChildIndex = $(this).parent().prevAll().length + 1;
        $(this).parent().parent().children('.current').removeClass('current');
        $(this).parent().addClass('current');
        
        $(this).parent().parent().next('.tabContainer').children('.current').slideUp('normal',function() {
            $(this).removeClass('current');
            $(this).parent().children('div:nth-child('+curChildIndex+')').slideDown('normal',function() {
                $(this).addClass('current');
            });
        });
        return false;                                
    });
});