/*validators*/

function validatorRequire(field, msg, title)
{

    if ($(field).val() == '') {
        showDialog(title, msg, field);
        return false;
    }

    return true;
}

function validatorEmail(field, msg, title)
{
    var regex = /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i;

    if ( regex.test($(field).val()) == false ) {
        showDialog(title, msg, field);
        return false;
    }

    return true;
}

function validatorCaptcha(captchaWord, captchaId, msg, title)
{
    var ret;
    $.ajax({
        type: "POST",
        url:"/system/validate-captcha/",
        async: false,
        data: {
            captcha_word: $(captchaWord).val(),
            captcha_id: $(captchaId).val()
        },
        dataType: "text",
        success: function(data){
            ret = data;
    }
    });

    if (ret != 'true') {
        showDialog(title, msg, captchaWord);
        return false;
    }

    return true;
}

function validatorNumeric(field, msg, title)
{
    var regex = /^[0-9]*$/i;
    if ( regex.test($(field).val()) == false ) {
        showDialog(title, msg, field);
        return false;
    }

    return true;
}

/*custom func*/


function getRandomImg(gallery, timeout, images)
{
    var init = false;

    if (images == null) {
        $.ajax({
            type: "POST",
            url:"/system/random-img/",
            async: false,
            data: {
                gallery: gallery
            },
            dataType: "json",
            success: function(data){
                images = data;
                init = true;
            }
        });
    }

    var id = Math.floor(Math.random()*images.length);

    if (init) {
        var link='';

        if (images.length > 1) {
            for (i=1; i<images.length; i++) {
                link += '<a href="'+images[i].file+'" rel="latest-gal" title="'+images[i].desc+'"></a>';
            }
        }

        $("#latest-img").fadeOut(300, function(){$("#latest-img").html('<div id="latest-image-azc"><a href="'+images[0].file+'" title="'+images[0].desc+'" rel="latest-gal"><img src="'+images[id].th_file+'" alt="latest image"/></a></div>' + (link != '' ? link : ''));});
        $("a[rel='latest-gal']").colorbox({maxWidth:800, maxHeight:600, previous: "Předchozí", next: "Další", close: "Zavřít", current: "Obrázek {current} / {total}"});
        $("#latest-img").fadeIn(300);

    } else {
        $("#latest-img").fadeOut(300, function(){$("#latest-img #latest-image-azc a").html('<img src="'+images[id].th_file+'" alt="latest image" />');});
        $("#latest-img").fadeIn(300);
    }

        setTimeout(function(){getRandomImg(gallery, timeout, images)},timeout);
}

function reloadCaptcha(prefix) {
    if (prefix == undefined)
        prefix='captcha';

    $.ajax({
        type: "POST",
        url: "/system/reload-captcha/",
        async: false,
        data: {
            captcha_text: "c_text"
        },
        dataType: "text",
        success: function(data){
            $("#"+prefix+"-img").attr("src", '/var/captcha/'+data+'.png');
            $("#"+prefix+"_word").val('');
            $("#"+prefix+"_id").val(data);

        }
    });

    $("#"+prefix+"_word").val('');
};

function validateForm()
{

    if (!validatorRequire('#name', $.i18n('Please enter name'), $.i18n('Error'))) return false;
    if (!validatorRequire('#email', $.i18n('Please enter email'), $.i18n('Error'))) return false;
    if (!validatorEmail('#email', $.i18n('Please enter valid email'), $.i18n('Error'))) return false;
    if (!validatorRequire('#msg', $.i18n('Please enter message'), $.i18n('Error'))) return false;
    if (!validatorCaptcha('#captcha_word', '#captcha_id', $.i18n('Please enter valid code'), $.i18n('Error'))) return false;

    return true;
}

function validateForm2()
{

    if (!validatorRequire('#name', $.i18n('Please enter name'), $.i18n('Error'))) return false;
    if (!validatorRequire('#company', 'Zadejte název firmy', $.i18n('Error'))) return false;
    if (!validatorRequire('#email', $.i18n('Please enter email'), $.i18n('Error'))) return false;
    if (!validatorEmail('#email', $.i18n('Please enter valid email'), $.i18n('Error'))) return false;
    if (!validatorRequire('#msg', $.i18n('Please enter message'), $.i18n('Error'))) return false;
    if (!validatorCaptcha('#captcha_word', '#captcha_id', $.i18n('Please enter valid code'), $.i18n('Error'))) return false;

    return true;
}

validateDiscussionForm = function(loggedIn)
{
    if (!validatorRequire('#dsc_name', $.i18n('Please enter name'), $.i18n('Error'))) return false;
    if (!validatorRequire('#dsc_surName', $.i18n('Please enter surname'), $.i18n('Error'))) return false;
    if (!validatorRequire('#dsc_subject', $.i18n('Please enter subject'), $.i18n('Error'))) return false;
    if (!validatorRequire('#dsc_email', $.i18n('Please enter email'), $.i18n('Error'))) return false;
    if (!validatorEmail('#dsc_email', $.i18n('Please enter valid email'), $.i18n('Error'))) return false;
    if (!validatorRequire('#dsc_msg', $.i18n('Please enter message'), $.i18n('Error'))) return false;
    
    if (!loggedIn) {
        if (!validatorCaptcha('#dsc_captcha_word', '#dsc_captcha_id', $.i18n('Please enter valid code'), $.i18n('Error'))) return false;
    }

    return true;
}

function loadRef2(id)
{
    $.ajax({
        type: "POST",
        url:"/system/get-ref/",
        async: false,
        data: {
            id: id
        },
        dataType: "json",
        success: function(data){
            $('#ref-image').html('<img src="'+( data.image == '' ? '/img/empty-ref.png' : data.image )+'" alt="'+data.title+'" />');
            $('#ref-body').html('<p class="heading"><a href="/'+data.seo+'/">'+data.title+'</a></p><p>'+data.introText+'</p>');

            if (data.next == null)
                $('#ref-next').hide();
            else {
                $('#ref-next').unbind('click');
                $('#ref-next').click(function(){loadRef(data.next);});
                $('#ref-next').show();
            }

            if (data.prev == null)
                $('#ref-prev').hide();
            else {
                if ($('#ref-prev').attr('onclick') != null)
                    $('#ref-prev').attr('onclick', null);
                $('#ref-prev').unbind('click');
                $('#ref-prev').click(function(){loadRef(data.prev);});
                $('#ref-prev').show();
            }
        }
    });
}


function loadRef(start)
{
    if (start == null) {
        start = 0;
        var efekt = false;
    }else {
        var efekt = true;
    }

    $.ajax({
        type: "POST",
        url:"/system/ref/",
        async: false,
        data: {
            start: start
        },
        dataType: "json",
        success: function(data){
            var code='';
            for (i=0; i<data.ret.data.length; i++)
                code += '<div class="ref-img-wrapper img-'+i+'"><a href="/'+data.ret.data[i].seo+'/"><img src="'+(data.ret.data[i].image != '' ? data.ret.data[i].image : '/img/ref-noimg.jpg')+'" alt="img" /></a><div class="ref-detail"><h3>'+data.ret.data[i].title+'</h3><p>'+data.ret.data[i].date_created.day+'. '+data.ret.data[i].date_created.nameMonth+'</p></div></div>';

            code += '';
            
            if (start - 3 >= -1)
                code += '<div class="prev" onclick="loadRef('+ (start-3) +')" title="Předchozí reference"></div>';

            if (start + 3 < data.ret.count)
                code += '<div class="next" onclick="loadRef('+ (start+3) +')" title="Další reference"></div>';

            $("#ref-body").html(code);
        }
    });
}

function showForm(show)
{
    $('.left-form div#show-form').unbind('click');

    if (show == false) {
        //hide form
        $('.left-form div#show-form').click(function(){showForm();});
        $('.left-form').animate({left: '-=500'}, 500);
    } else {
        $('.left-form div#show-form').click(function(){showForm(false);});
        $('.left-form').animate({left: '+=500'}, 500);
    }


}

$(document).ready(function(){
    
    $('#search_text').click(function(){        
        if($('#search_text').val() == "Vyhledat"){
          $('#search_text').val('');   
        }           
    });
   
   
        
    $("a[rel^='colorbox']").colorbox({
        maxWidth:1066,
        maxHeight:800,
        previous: "Předchozí",
        next: "Další",
        close: "Zavřít",
        current: "Obrázek {current} / {total}"
    });
    /*
    $(".view-catalog").colorbox({iframe: true, innerWidth:'600px', innerHeight:'590px'});
    Cufon.replace('#line div.line-menu a', {hover: true});
    Cufon.replace('#header .h-txt .line1');
    Cufon.replace('#header .h-txt .line2');
    Cufon.replace('#header .h-txt .line3');
    */

    if ($('.left-form div#show-form') != null)
        $('.left-form div#show-form').click(function(){showForm();});
});


var _sliderData = {};

sliderRegister = function(name, data, timeout) {
    _sliderData[name] = eval ('({"name": name, "data": data, "timeout": timeout, "current": undefined, "timer_id": undefined})');
    $('div#slider_'+name+' div.slider-picture').css('background', 'url("/files/gallery/'+_sliderData[name].data[0]+'")');
    if (sliderShowpicture(name, 0)) {
        _sliderData[name].timer_id = setTimeout(function(){sliderAutoChangeImage(name)},_sliderData[name].timeout, name);
    }
}

sliderSetPicture = function(name, id) {
    var cur = _sliderData[name].current;
    var max = _sliderData[name].data.length - 1;

    if (id < 0 || id > max || id == cur)
        return;

    clearTimeout(_sliderData[name].timer_id);
    
    if (sliderShowpicture(name, id)) {
        _sliderData[name].timer_id = setTimeout(function(){sliderAutoChangeImage(name)},_sliderData[name].timeout, name);
    }
}

sliderShowpicture = function(name, id) {
    var cur = _sliderData[name].current;
    var max = _sliderData[name].data.length - 1;
    if (id < 0 || id > max || id == cur)
        return false;


    $('div#slider_'+name+' div.slider_navigator span').removeClass('selected');
    $('div#slider_'+name+' div.slider-picture').hide();
    $('div#slider_'+name+' div.slider-picture').css('background', 'url("/files/gallery/'+_sliderData[name].data[id]+'")');
    $('div#slider_'+name+' div.slider-picture').fadeIn('normal');
    $('div#slider_'+name+' div.slider_navigator span.slider_img-'+id).addClass('selected');
    _sliderData[name].current = id

    return true;
}

sliderAutoChangeImage = function(name) {
    var cur = _sliderData[name].current;
    var max = _sliderData[name].data.length - 1;

    cur ++;
    if (cur > max)
        cur = 0;

    if (sliderShowpicture(name, cur)) {
        _sliderData[name].timer_id = setTimeout(function(){sliderAutoChangeImage(name)},_sliderData[name].timeout, name);
    }

}

deleteRating = function(ratingId) {
    $.ajax({
        type: "POST",
        url:"/system/rating-delete/",
        async: false,
        data: {
            ratingId: ratingId,
            returnData: 'no'
        },
        dataType: "json",
        success: function(data){
            if (data.err) {
                alert(data.err);
                return;
            }
            location.href = location.pathname + "#tab-rating";
            location.reload();
        }
    });

}

addRating = function(ratingId) {
    var rating = $('#rating-val-'+ratingId).val();
    var note = $('#rating-text-'+ratingId).val();

    if (!validatorRequire('#rating-val-'+ratingId, $.i18n('Please enter your rating'), $.i18n('Error'))) return false;

    $.ajax({
        type: "POST",
        url:"/system/rating-add/",
        async: false,
        data: {
            ratingId: ratingId,
            ratingVal: rating,
            ratingNote: note
        },
        dataType: "json",
        success: function(data){
            if (data.err) {
                alert(data.err);
                return;
            }
            updateRatingDiv(data, ratingId);
            
        }
    });
    
}

updateRatingDiv = function (data, ratingId)
{
    $('#rating-add-wrapper-'+ratingId).html('');
    $('#rating-entries-'+ratingId).html(data.entriesBody);
    $('#rating-'+ratingId+' .rating-avg span.val').html(data.avg);
    $('#rating-'+ratingId+' .rating-avg span.rating-stars-bg span').css('width', parseFloat(16*data.avg).toFixed(0));
    $('#rating-'+ratingId+' .rating-total span.val').html(data.total);
}

ratingDialog = function(ratingId, edit)
{
    var btns = {};

    var btn1Text;
    if (edit) {

        btns[$.i18n('Delete')] = function() {
            $.ajax({
                type: "POST",
                url:"/system/rating-delete/",
                async: false,
                data: {
                    ratingId: ratingId,
                    returnData: 'no'
                },
                dataType: "json",
                success: function(data){
                    if (data.err) {
                        alert(data.err);
                        return;
                    }
                    location.reload();
                }
            });
        };
        btn1Text = $.i18n('Save');
    } else {
        btn1Text = $.i18n('Add');
    }

    btns[btn1Text] = function() {
        if (!validatorRequire('#rating-val', $.i18n('Please enter your rating'), $.i18n('Error'))) return false;
        $.ajax({
            type: "POST",
            url:"/system/rating-"+(edit == 1 ? 'update' : 'add')+"/",
            async: false,
            data: {
                ratingId: ratingId,
                ratingVal: $('#rating-val').val(),
                ratingNote: $('#rating-text').val(),
                returnData: 'no'
            },
            dataType: "json",
            success: function(data){
                if (data.err) {
                    alert(data.err);
                    return;
                }
                location.reload();
            }
        });
    };

    btns[$.i18n('Close')] = function() {$(this).dialog("close");};

    $("#rating-dialog").dialog({
        modal: true,
        position: 'center',
        bgiframe: true,
        title: $.i18n('Rating'),

        close: function(event, ui) {
                $('#rating-dialog').dialog('destroy');
        },

        open: function(event, ui) {
            var html = '<p><label for="rating-rate">'+$.i18n('Rating')+' :</label><select name="myRating" class="rating" id="rating-rate" >"';
                html += '<option  value="1">1</option><option  value="2">2</option><option  value="3">3</option><option  value="4">4</option><option  value="5">5</option>';
                html += '<option  value="6">6</option><option  value="7">7</option><option  value="8">8</option><option  value="9">9</option><option  value="10">10</option>';
                html += '</select><input type="hidden" name="ratingVal" value="" id="rating-val" /></p><p><label for="rating-text">'+$.i18n('Verbal description')+'</label><br /><textarea style="width: 200px; height: 80px;" id="rating-text"></textarea></p>';
             
            $('#rating-dialog').html(html);

            $("#rating-rate").rating({showCancel: false, cancelValue: null});
            $("#rating-rate").bind('change', function(){
                $('#rating-val').val($("#rating-rate").val());
            });
            if (edit == 1) {
                $.ajax({
                        type: "POST",
                        url:"/system/rating-get-by-user/",
                        async: false,
                        data: {
                            ratingId: ratingId
                        },
                        dataType: "json",
                        success: function(data){
                            if (data.err) {
                                alert(data.err);
                                return;
                            }
                            $("#rating-rate").val(data.rating);
                            $('#rating-text').val(data.note);
                            $("#rating-rate").trigger('change');
                        }
                    });
            }

        },
        buttons: btns

    });
}
