var _IE_OLD = document.all?1:0;
JS = new Object();
JS.agent = navigator.userAgent;
if (JS.agent.match(/MSIE\s+(\d+)/)) {
    JS.IE = true;
    JS.IE_Version = RegExp.$1;
    if (JS.IE_Version < 7) JS.IE_OLD = true;
}

JS.KHTML = JS.agent.match(/KHTML/);
JS.Opera = JS.agent.match(/Opera/);
JS.Gecko = (!JS.KHTML && JS.agent.match(/Gecko/));
JS.DOM = document.getElementById ? true : false;

$attachEvent = function(object, event, method, methodId) {
    if (!methodId) { methodId = ''; }
    object['event_'+event+methodId] = function(event) { method.apply(object, [event]); };
    if (typeof(object['addEventListener']) == 'function') { 
        object.addEventListener(event, object['event_'+event+methodId], false);
    } else {
        object.attachEvent('on'+event, object['event_'+event+methodId]);
    }
}


OrderControl = function() {
    this.name = 'Order Control Object';
}

OrderControl.prototype = {
    orderCache: function(name, value) {
        var self = this;
         var date = new Date();
        date.setTime(date.getTime()+86400000);
        setCookie('__order_'+name, value, date.toGMTString(), '/');
        var n_str = getCookie('__order_names');
        if (!n_str) { n_str = ''; }
        var names = n_str.split('|');
        var flag = true;
        for (var i=0; i<names.length; i++) {
            if (names[i] == name) { flag = false; break; }
        }
        if (flag) { n_str += name+'|'; }
        setCookie('__order_names', n_str, date.toGMTString(), '/');
    },
    cleanupOrdersCache: function() {
        var n_str = getCookie('__order_names');
        if (n_str) {
            var date = new Date();
            date.setTime(date.getTime()-86400000);
            var names = n_str.split('|');
            for (var i=0; i<names.length; i++) {
                setCookie('__order_'+names[i], 0, date.toGMTString(), '/');
            }
            setCookie('__order_names', n_str, date.toGMTString(), '/');
        }
    }
}

var orderControl = new OrderControl();
orderControl.cleanupOrdersCache();
window.onload = function() {
    var gal = document.getElementById('gallery');
    if (gal) { startupGallery(); }
    if (typeof(interfaceLoad)=='function') {
        interfaceLoad();
    }
}


function cleanupNode(node) {
    var el = node;
    while (el.childNodes.length>0) { el.removeChild(el.firstChild); }
}
function insertText(element, text) {
    element.appendChild(document.createTextNode(text));
}

function setCookie (name, value, expires, path, domain, secure) {
      document.cookie = name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
}

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 setupSoundControl() {
    var btn = document.getElementById('sound-control');
    window.soundState = getCookie('__sound_state') || 'on';
    btn.onclick = function() { changeSoundState(btn); }
    procSS(btn);
}

function procSS(btn) {
    var date = new Date();
    date.setTime(date.getTime()+86400000/2);
    setCookie('__sound_state', window.soundState, date.toGMTString(), '/');
    if (window.soundState == 'on') {
        btn.style.background = 'url(/i/sound-on.gif) 0 50% no-repeat';
        btn.title = 'Îòêëþ÷èòü çâóê';
    } else {
        btn.style.background = 'url(/i/sound-off.gif) 0 50% no-repeat';
        btn.title = 'Âêëþ÷èòü çâóê';
    }
    if (btn.innerHTML != '') btn.innerHTML = btn.title;
}

function changeSoundState(btn) {
    if (window.soundState == 'on') window.soundState = 'off';
    else window.soundState = 'on';
    procSS(btn);
}

function setupLongTextFields(formId) {
    var form = document.getElementById(formId);
    if ((form) && (!JS.Opera)) {
        var area = form.getElementsByTagName('textarea');
        for (var i=0; i<area.length; i++) {
            area[i].style.overflow = 'hidden';
            $attachEvent(area[i], 'keyup', function(e) { checkTextAreaSize(this,e); });
        }
    }
}

function checkTextAreaSize(obj,e) {
    var event = e || window.event;
    if ((obj.scrollHeight > obj.offsetHeight) && (obj.scrollHeight<500)) {
        obj.style.height = obj.scrollHeight+'px';
    }
    if (obj.scrollHeight>=500) obj.style.overflow = 'auto';
}
