var cookie_options = {
    path: '/'
};

function trim( str, charlist ) {
    charlist = !charlist ? ' ' : charlist.replace(/([\[\]\(\)\.\?\/\*\{\}\+\$\^\:])/g, '\$1');
    var re = new RegExp('^[' + charlist + ']+|[' + charlist + ']+$', 'g');
    return str.replace(re, '');
}

/***********************************************************************************/

function str_replace(search, replace, subject) {
    var s = subject;
    var f = [].concat(search);
    var r = [].concat(replace);
    var l = (f.length>r.length) ? r.length : f.length;
    var i = 0;

    for (i=0; i<l; ++i)
    {
        s = s.split(f[i]).join(r[i]);
    }

    return s;
}
function explode( delimiter, string ) {    // Split a string by string
    //
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: kenneth
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)

    var emptyArray = {
        0: ''
    };

    if ( arguments.length != 2
        || typeof arguments[0] == 'undefined'
        || typeof arguments[1] == 'undefined' )
        {
        return null;
    }

    if ( delimiter === ''
        || delimiter === false
        || delimiter === null )
        {
        return false;
    }

    if ( typeof delimiter == 'function'
        || typeof delimiter == 'object'
        || typeof string == 'function'
        || typeof string == 'object' )
        {
        return emptyArray;
    }

    if ( delimiter === true ) {
        delimiter = '1';
    }

    return string.toString().split ( delimiter.toString() );
}
/***********************************************************************************/

function refreshSecretkey(id,type)
{
    if(typeof(type)=='undefined'){
        setTimeout("refreshSecretkeyTimeout('"+id+"')",100);
    }else{
        setTimeout("refreshSecretkeyTimeout('"+id+"','"+type+"')",100);
    }
}
function refreshSecretkeyTimeout(id,type)
{
    if(typeof(type)=='undefined'){
        $('#'+id).attr({
            'src':'/secretkey.php?id='+Math.round(Math.random(0)*1000)+1
        });
    }else{
        $('#'+id).attr({
            'src':'/secretkey.php?type='+type+'&id='+Math.round(Math.random(0)*1000)+1
        });
    }
}

/***********************************************************************************/

jQuery.validator.addMethod("validemail", function(value, element, param) {
    if(trim(value)=='' && this.optional(element)==false)return false;
    var reg = /^[0-9a-z_\.-]+@[0-9a-z_^\.-]+\.[a-z]{2,6}$/i
    return this.optional(element) || (reg.test(value) || reg.test(value));
},'Please enter valid email');

//------------------------------------------------------------------------------------

jQuery.validator.addMethod("checkDate", function(value, element, param) {
    //alert(element.id);
    var params = explode(',',param);
    var day=parseInt($('#'+params[0]).val());
    var month=parseInt($('#'+params[1]).val())-1;
    var year=parseInt($('#'+element.id).val());
    if(!this.optional(element) && (day+month+year==-1))return true;
    var date = new Date( year, month, day )
    if((day==date.getDate())&&(month==date.getMonth())&&(year==date.getFullYear())&&(year>1753))
    {
        return true;
    }
    return false;
});
//------------------------------------------------------------------------------------
jQuery.validator.addMethod("secretkey",  function(value, element, param) {
    if(trim(value)=='' && this.optional(element)==false)return true;
    var reg = /^[a-z0-9_-]+$/i
    return reg.test(value) || reg.test(value);
}, 'Please enter valid secretkey!');
jQuery.validator.addMethod("checkAge", function(value, element, param) {
    var params = explode(',',param);
    var day=parseInt($('#'+params[0]).val());
    var month=parseInt($('#'+params[1]).val())-1;
    var year=parseInt($('#'+element.id).val());
    var ageStart = params[2];
    var ageEnd   = params[3];
    //alert(ageStart+ ' '+ageEnd);
    if(!this.optional(element) && (day+month+year==-1))return true;
    var date = new Date( year, month, day )
    if((day==date.getDate())&&(month==date.getMonth())&&(year==date.getFullYear())&&(year>1753))
    {
        var nowTime = new Date();
        var date1   = new Date(nowTime.getFullYear()-ageEnd,nowTime.getMonth(), nowTime.getDate());
        var date2   = new Date(nowTime.getFullYear()-ageStart,nowTime.getMonth(), nowTime.getDate());
        return ((date.getTime()>=date1.getTime())&&(date.getTime()<=date2.getTime()));
    }
    return false;
});

//------------------------------------------------------------------------------------

jQuery.validator.addMethod("validnickname", function(value, element, param) {
    if(value=='')return false;
    var reg = /^[a-zA-Z0-9_]+$/i
    return reg.test(value) || reg.test(value);
}, 'Please enter valid nickname!');

jQuery.validator.addMethod("validlatin", function(value, element, param) {
    //alert(element.id+' '+this.optional(element));
    if(trim(value)=='' && this.optional(element)!=false)return true;
    var reg = /^[a-z0-9!@%#$\^&*()\[\]+_=<>?.\/\\{}~"'’`:;,| \r\n\t~¢£¤¥¦§¨©«¬®¯°±²³´·¸¹º»ǀǁǂ\‒\–\—\―‖‗‘’‚‛“”„‟†‡•…′″‴‹›₤€₵℅ℓ№℗™■□▪▫◊○◌●◦-]+$/i

    //var reg = /^[a-zA-Z!@%#$^&*()[\]+_=<>?./\{}~"'’`:;,| \r\n\t-]+$/i
    //@[\]^_`{|}~¢£¤¥¦§¨©«¬­®¯°±²³´·¸¹º»ǀǁǂ‒–—―‖‗‘’‚‛“”„‟†‡•…′″‴‹›₤€₵℅ℓ№℗™■□▪▫◊○◌●◦
    return reg.test(value) || reg.test(value);
}, 'Please enter latin symbols only!');


function processXml(responseXML, form_id, callback_function) {
    var form = $('#'+form_id);
    $('[id^=error_]',form).hide();
    var count_errors = 0;
    $('e', responseXML).each(function(i){
        count_errors++;
        var container	= $('c',$(this)).text();
        var message		= $('m',$(this)).text();
        if(container==form_id+'_secretkey'){
            var s=explode('Form',container);
            refreshSecretkey(form_id+'_secretkey_img',s[0]);
        }
        $('#error_'+container).html(message).show();
    });
    if(count_errors==0 && typeof(callback_function)=='function'){
        callback_function(form_id);
    }
}








var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;

function ControlVersion()
{
    var version;
    var axo;
    var e;

    // NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry

    try {
        // version will be set for 7.X or greater players
        axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
        version = axo.GetVariable("$version");
    } catch (e) {
    }

    if (!version)
    {
        try {
            // version will be set for 6.X players only
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");

            // installed player is some revision of 6.0
            // GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
            // so we have to be careful.

            // default to the first public version
            version = "WIN 6,0,21,0";

            // throws if AllowScripAccess does not exist (introduced in 6.0r47)
            axo.AllowScriptAccess = "always";

            // safe to call for 6.0r47 or greater
            version = axo.GetVariable("$version");

        } catch (e) {
        }
    }

    if (!version)
    {
        try {
            // version will be set for 4.X or 5.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
            version = axo.GetVariable("$version");
        } catch (e) {
        }
    }

    if (!version)
    {
        try {
            // version will be set for 3.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
            version = "WIN 3,0,18,0";
        } catch (e) {
        }
    }

    if (!version)
    {
        try {
            // version will be set for 2.X player
            axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
            version = "WIN 2,0,0,11";
        } catch (e) {
            version = -1;
        }
    }

    return version;
}

// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer(){
    // NS/Opera version >= 3 check for Flash plugin in plugin array
    var flashVer = -1;

    if (navigator.plugins != null && navigator.plugins.length > 0) {
        if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
            var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
            var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
            var descArray = flashDescription.split(" ");
            var tempArrayMajor = descArray[2].split(".");
            var versionMajor = tempArrayMajor[0];
            var versionMinor = tempArrayMajor[1];
            var versionRevision = descArray[3];
            if (versionRevision == "") {
                versionRevision = descArray[4];
            }
            if (versionRevision[0] == "d") {
                versionRevision = versionRevision.substring(1);
            } else if (versionRevision[0] == "r") {
                versionRevision = versionRevision.substring(1);
                if (versionRevision.indexOf("d") > 0) {
                    versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
                }
            }
            var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
        }
    }
    // MSN/WebTV 2.6 supports Flash 4
    else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
    // WebTV 2.5 supports Flash 3
    else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
    // older WebTV supports Flash 2
    else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
    else if ( isIE && isWin && !isOpera ) {
        flashVer = ControlVersion();
    }
    return flashVer;
}

// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
    versionStr = GetSwfVer();
    if (versionStr == -1 ) {
        return false;
    } else if (versionStr != 0) {
        if(isIE && isWin && !isOpera) {
            // Given "WIN 2,0,0,11"
            tempArray         = versionStr.split(" "); 	// ["WIN", "2,0,0,11"]
            tempString        = tempArray[1];			// "2,0,0,11"
            versionArray      = tempString.split(",");	// ['2', '0', '0', '11']
        } else {
            versionArray      = versionStr.split(".");
        }
        var versionMajor      = versionArray[0];
        var versionMinor      = versionArray[1];
        var versionRevision   = versionArray[2];

        // is the major.revision >= requested major.revision AND the minor version >= requested minor
        if (versionMajor > parseFloat(reqMajorVer)) {
            return true;
        } else if (versionMajor == parseFloat(reqMajorVer)) {
            if (versionMinor > parseFloat(reqMinorVer))
                return true;
            else if (versionMinor == parseFloat(reqMinorVer)) {
                if (versionRevision >= parseFloat(reqRevision))
                    return true;
            }
        }
        return false;
    }
}
var FlashInstalled = GetSwfVer()!=-1;
var FlashValid     = DetectFlashVer(9,0,24);
function notLatinHandler(el){
    $('#'+el).autotab({
        format: 'latin'
    });
}

function thisMovie(movieName) {
    if (navigator.appName.indexOf("Microsoft") != -1) {
        return window[movieName];
    } else {
        return document[movieName];
    }
}
function sendToActionScript(player,value) {
    setTimeout('thisMovie("'+player+'").sendTextToFlash("'+value+'")',1000);
}


function startRotation(){
    if(command_rotation){
        clearInterval(rotationInterval);
        rotationInterval=setInterval(function(){
            scrollToNext();
        },command_rotation_time);
    }
}

function scrollToNext(){
    var ne = $("#d").queue("fx");
    if (ne.length > 0) {
        return;
    }
    var left = parseInt($("#d").css("left"));
    var id = Math.abs(Math.round(left/scroll_width1))+1;
    if(id>scroll_count-1){
        $("#d").animate({
            "left": "" + 0 + "px"
        }, "fast");
        
    }else{
        $("#d").animate({
            "left": "-=" + scroll_width1 + "px"
            }, "slow");
        
    }
}
function scrollToPrev(){
    var ne = $("#d").queue("fx");
    if (ne.length > 0) {
        return;
    }
    var left = parseInt($("#d").css("left"));
    var id = Math.abs(Math.round(left/scroll_width1))-1;
    if(id<0){
        $("#d").animate({
            "left": "-" + (scroll_width1*(scroll_count-1)) + "px"
            }, "fast");
        
    }else{
        $("#d").animate({
            "left": "+=" + scroll_width1 + "px"
            }, "slow");
        
    }
}
function checkPollForm(form){
    var ch=0;
    $('input.radioBtn').each(function(){
        if(this.checked){
            ch=this.value;
        }
    });
    if(ch==0){
        alert('Пожалуйста, выберите вариант ответа');
    }else{
        //$('#pollArea').attr({'align':'center'});
        //$('#pollArea').html('<img src="/_img/ajax-loader.gif" align="center" />');
		$('#pollRespond').hide();
		$('#pollLoading').show();
        $.get('/',{'do':'vote','poll_item':form['poll_item'].value,'variant':ch},function(data){
            $('#pollArea').html(data);
        });
    }
    return false;
}
function checkOpros(form){
   var ch=0;
   $('input[id^=menu]').each(function(i){
       if(this.value==1)ch++;
   });
   if(ch==0){
        alert('Пожалуйста, выберите одно или более блюдо');
    }else{
       return true;
    }
    return false;
}
$(document).ready(function(){
    $('span.zoom').click(function(){
        $.prettyPhoto.open($(this).attr('rel'),$(this).attr('title'),"");
    });
    $('input[name=poll]').change(function(){
        $('input[name=poll]').each(function(){
            $(this).parent().removeClass('active')
        });
        $(this).parent().addClass('active');
    });
    $("[rel^=prettyPhoto]").prettyPhoto({
        theme:'light_square'
    });
    $("a.next").click(function(){
        startRotation();
        scrollToNext();
    });

    $("a.prev").click(function(){
        startRotation();
        scrollToPrev();
    });
    $('div.mealPic').click(function(){
        if($(this).hasClass('active')){
            $('#menu_'+$(this).attr('rel')).val(0);
            $(this).removeClass('active');
        }else{
            $('#menu_'+$(this).attr('rel')).val(1);
            $(this).addClass('active');
        }
    });
});
function successsubscribeFormHandler(form){
    alert('Спасибо за подписку на нашем сайте!');
    document.location.href='/';
}