

String.prototype.stripHtml = function() { val = this; val = val.replace(/<[^>]+>/gim, ""); val = val.replace(/<\/[^>]+>/gim, ""); val = val.replace(/&nbsp;/gim, ""); return val; }
String.prototype.ltrim = function() { return this.replace(/^\s+/,""); }
String.prototype.rtrim = function() { return this.replace(/\s+$/,""); }
String.prototype.trim = function() { return this.replace(/^\s*([\S\s]*?)\s*$/, '$1'); }


jQuery.fn.extend({
    everyTime: function(interval, label, fn, times, belay) {
        return this.each(function() {
            jQuery.timer.add(this, interval, label, fn, times, belay);
        });
    },
    oneTime: function(interval, label, fn) {
        return this.each(function() {
            jQuery.timer.add(this, interval, label, fn, 1);
        });
    },
    stopTime: function(label, fn) {
        return this.each(function() {
            jQuery.timer.remove(this, label, fn);
        });
    }
});

jQuery.extend({
    timer: {
        guid: 1,
        global: {},
        regex: /^([0-9]+)\s*(.*s)?$/,
        powers: {
            // Yeah this is major overkill...
            'ms': 1,
            'cs': 10,
            'ds': 100,
            's': 1000,
            'das': 10000,
            'hs': 100000,
            'ks': 1000000
        },
        timeParse: function(value) {
            if (value == undefined || value == null)
                return null;
            var result = this.regex.exec(jQuery.trim(value.toString()));
            if (result[2]) {
                var num = parseInt(result[1], 10);
                var mult = this.powers[result[2]] || 1;
                return num * mult;
            } else {
                return value;
            }
        },
        add: function(element, interval, label, fn, times, belay) {
            var counter = 0;
            
            if (jQuery.isFunction(label)) {
                if (!times) 
                    times = fn;
                fn = label;
                label = interval;
            }
            
            interval = jQuery.timer.timeParse(interval);

            if (typeof interval != 'number' || isNaN(interval) || interval <= 0)
                return;

            if (times && times.constructor != Number) {
                belay = !!times;
                times = 0;
            }
            
            times = times || 0;
            belay = belay || false;
            
            if (!element.$timers) 
                element.$timers = {};
            
            if (!element.$timers[label])
                element.$timers[label] = {};
            
            fn.$timerID = fn.$timerID || this.guid++;
            
            var handler = function() {
                if (belay && this.inProgress) 
                    return;
                this.inProgress = true;
                if ((++counter > times && times !== 0) || fn.call(element, counter) === false)
                    jQuery.timer.remove(element, label, fn);
                this.inProgress = false;
            };
            
            handler.$timerID = fn.$timerID;
            
            if (!element.$timers[label][fn.$timerID]) 
                element.$timers[label][fn.$timerID] = window.setInterval(handler,interval);
            
            if ( !this.global[label] )
                this.global[label] = [];
            this.global[label].push( element );
            
        },
        remove: function(element, label, fn) {
            var timers = element.$timers, ret;
            
            if ( timers ) {
                
                if (!label) {
                    for ( label in timers )
                        this.remove(element, label, fn);
                } else if ( timers[label] ) {
                    if ( fn ) {
                        if ( fn.$timerID ) {
                            window.clearInterval(timers[label][fn.$timerID]);
                            delete timers[label][fn.$timerID];
                        }
                    } else {
                        for ( var fn in timers[label] ) {
                            window.clearInterval(timers[label][fn]);
                            delete timers[label][fn];
                        }
                    }
                    
                    for ( ret in timers[label] ) break;
                    if ( !ret ) {
                        ret = null;
                        delete timers[label];
                    }
                }
                
                for ( ret in timers ) break;
                if ( !ret ) 
                    element.$timers = null;
            }
        }
    }
});

if (jQuery.browser.msie)
    jQuery(window).one("unload", function() {
        var global = jQuery.timer.global;
        for ( var label in global ) {
            var els = global[label], i = els.length;
            while ( --i )
                jQuery.timer.remove(els[i], label);
        }
    });




        
function toggle_postform(id) {
    var post = document.getElementById(id);
    var postdiv = post.childNodes[post.childNodes.length-1];
    if(!document.all)
        postdiv = post.childNodes[post.childNodes.length-2];
    if(postdiv.innerHTML != undefined && postdiv.innerHTML != "") {
       postdiv.innerHTML = "";
       return false;
    }
    var form = document.getElementById("idMBPostForm");
    postdiv.innerHTML = '<div class="mb-post-form">'+form.innerHTML+'</div>';
    // hidden
    if(document.all && document.selection && !window.opera)
        postdiv.childNodes[0].childNodes[0].elements['mb_parentid'].value = id;
    else
        postdiv.childNodes[0].childNodes[1].elements['mb_parentid'].value = id;
    
    return false;
}

function ClearValue(obj, checkTo){
    if (obj.value == checkTo)
        obj.value = "";
}

function ChangeValue(obj, checkTo, type){
    var compare = type ? "" : checkTo;
    var newValue = type ? checkTo : "";
    if (obj.tagName == "textarea"){
        if (obj.innerHTML == compare)
            obj.innerHTML = newValue;
    } else if (obj.value == compare)
            obj.value = newValue;
}


function AjaxRequest(cmd, data, callback, nocache, async) {
    data.cmd = cmd;
    return $.ajax({
        url: "/ajax.php",
        cache: nocache,
        timeout: 10000, 
        data: data, 
        type: "POST",
        processData: true,
        async: async != undefined ? async : false,
        time: new Date(),
        success: callback
    });
}

function AjaxRunTemplate(prefix, object, template, args, callback) {
    args.cmd = prefix+':'+object+'.'+template;
    return $.ajax({
        url: "/ajax.php",
        cache: false,
        timeout: 10000, 
        data: args, 
        type: "POST",
        processData: true,
        async: true,
        time: new Date(),
        success: callback
    });
}


$().ready(function(){
    
    var set = {
        imageLoading:  '/resources/images/layout/lt/lightbox-ico-loading.gif',
        imageBtnPrev:  '/resources/images/layout/lt/lightbox-btn-prev.gif',
        imageBtnNext:  '/resources/images/layout/lt/lightbox-btn-next.gif',
        imageBtnClose: '/resources/images/layout/lt/lightbox-btn-close.gif',
        imageBlank:    '/resources/images/layout/lt/lightbox-blank.gif',
        txtImage:                'Акция',    // (string) Specify text "Image"
        txtOf:                    'из',        // (string) Specify text "of"
    }
            
    
    $('*[@rel=imagebox-lights]').lightBox(set);
    $('*[@rel=imagebox]').lightBox(set);
    
    $('input.order').click(function() {
        location = '/basket/?cmd=add&id=' + $(this).attr('product');
    });
    
});
     
