var popup;
function zoom(id,width,height,module) {
    var pW, pH, lW, lH;
    if (popup) popup.close();
    pW = width+25;
    pH = height+100;

    if (module) {
        module = module+'/';
    } else {
        module = '';
    }

    popup=window.open('/zoom/'+module+id,'zoom','width='+pW+', height='+pH+', scrollbars=1, resizable=0, location=no, status=no');
    popup.focus();
}

function zoom_shutter(url) {
    saveLinks = null;
    saveSets = null;

    if (typeof(shutterLinks) == "undefined") {
        shutterLinks = new Array();
    } else {
        saveLinks = shutterLinks;
    }

    if (typeof(shutterSets) == "undefined") {
        shutterSets = new Array();
    } else {
        saveSets = shutterSets;
    }

    shutterSets[1] = [1];
    shutterLinks[1] = {link:url,num:1,set:1,title:""};
    shutterReloaded.Make(1);

    if (saveLinks != null) {
        window.setTimeout("shutterLinks = saveLinks", 500);
    }
    if (saveSets != null) {
        window.setTimeout("shutterSets = saveSets", 500);
    }

    return false;
}

function getCookie(name) {
        var cookie = " " + document.cookie;
        var search = " " + name + "=";
        var setStr = null;
        var offset = 0;
        var end = 0;
        if (cookie.length > 0) {
                offset = cookie.indexOf(search);
                if (offset != -1) {
                        offset += search.length;
                        end = cookie.indexOf(";", offset)
                        if (end == -1) {
                                end = cookie.length;
                        }
                        setStr = unescape(cookie.substring(offset, end));
                }
        }
        return(setStr);
}

function setCookie (name, value, expires, path, domain, secure) {

    var today = new Date();
    today.setTime( today.getTime() );

    if ( expires ) {
        expires = expires * 1000 * 60 * 60;
    } else {
        expires = 3 * 24 * 1000 * 60 * 60;
    }

    var expires_date = new Date( today.getTime() + (expires) );

      document.cookie = name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires_date.toGMTString() : "") +
        ((path) ? "; path=" + path : "; path=/") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
}

function img_set_src(imgid, src, timeout) {

    if (!timeout) timeout = 1000;

    var command = "document.getElementById('" + imgid + "').src = '" + src + "';";

    window.setTimeout(command, timeout);
}

function var_dump(vr,recursive,indent) {

    var result = "";

    if (!indent) indent = "";

    if (typeof(vr) == 'object') {

        result = result + "\n";   

        for (key in vr) {
            if (recursive) {
                result = result + indent + "[" + key + "]=>" + var_dump(vr[key], indent+"\t")+"\n";
            } else {
                result = result + "[" + key + "]=>" + vr[key] + "\n";
            }
        }

    } else {

        result = vr;
    }

    return result;
}

function serialize(vr) {

    var result = "";
    var items = Array();

    if (typeof(vr) == 'object') {

        result += "{";

        for (key in vr) {
            items[items.length] = key + ":" + serialize(vr[key]);
        }

        result += items.join(",");

        result += "}";

    } else {

        result = escape(vr);
    }

    return result;
}

function urlenc(str) {
    var result = "";
    var a;
    
    if (typeof(str) != "string") return "";

    for (i=0;i<str.length;i++) {

        a=str.charCodeAt(i);

        result += "x" + a;
    }

    return result;
}

function urldec(str) {
    var result = "";
    var a, l; 
    var s = "";

    if (typeof(str) != "string") return "";

    l = str.split("x");

    for (key in l) {

        if (!l[key].length) continue;
        a = parseInt(l[key]);

        result += String.fromCharCode(a);
    }

    return result;
}

function getInt(val) {

    var rv = parseInt(val);
    if (isNaN(rv)) rv = 0;

    return rv;
}

function sptrim(val) {
    var i, v, rv;

    v = val.split(' ');
    rv = Array();
    for (i=0; i<v.length; i++) {
        if (v[i].length) rv.push(v[i]);
    }

    return rv.join(' ');
}

function unique_tokens(val) {
    var i, v, rv;

    v = val.split(' ');
    rv = Array();
    for (i=0; i<v.length; i++) {
        if (v[i].length && indexOf(rv,v[i]) == -1) rv.push(v[i]);
    }

    return rv.join(' ');
}

function chr(code) {
    return String.fromCharCode(code);
}

function submit_ie6_fix(name) {
    if (!obj) return;
    if (!document.getElementById('form_action')) return;

    document.getElementById('form_action').name = obj.name;
}

function readKey(event)  {

    if (!event) event = window.event;

    if (!event.keyCode) return 0;

    return event.keyCode;
}

typeof(indexOf) == 'function' || (indexOf = function(a, v) {
       for(var i = a.length; i-- && a[i] !== v;);
       return i;
});

function fixTagsVisibility(arg) {

        var sel = document.getElementsByTagName('select');
        var obj = document.getElementsByTagName('object');
        var emb = document.getElementsByTagName('embed');

        if ( arg ) var vis = 'visible';
        else var vis = 'hidden';

        for (i = 0; i < sel.length; i++) sel[i].style.visibility = vis;
        for (i = 0; i < obj.length; i++) obj[i].style.visibility = vis;
        for (i = 0; i < emb.length; i++) emb[i].style.visibility = vis;
}


function getClientHeight() {
    var wiH = window.innerHeight ? window.innerHeight : 0;
    var dbH = document.body.clientHeight ? document.body.clientHeight : 0;
    var deH = document.documentElement ? document.documentElement.clientHeight : 0;

    var wHeight = 0;

    if( wiH > 0 ) {
      wHeight = ( (wiH - dbH) > 1 && (wiH - dbH) < 30 ) ? dbH : wiH;
      wHeight = ( (wHeight - deH) > 1 && (wHeight - deH) < 30 ) ? deH : wHeight;
    } else wHeight = ( deH > 0 ) ? deH : dbH;

    return wHeight;
}

function getClientWidth() {

    var deW = document.documentElement ? document.documentElement.clientWidth : 0;
    var dbW = window.innerWidth ? window.innerWidth : document.body.clientWidth;

    var wWidth = 0;

    wWidth = ( deW > 1 ) ? deW : dbW;

    return wWidth;
}

