$(document).ready(function(){    

$('#expander').expander({
  slicePoint: 1500, 
  widow: 2,
  preserveWords: true,
  expandEffect: 'fadeIn',
  expandText: 'Celý text »', 
  expandPrefix: '... ',
  userCollapseText: 'Méně textu »'
});

$('#expander3').expander({
  slicePoint: 460, 
  widow: 2,
  preserveWords: true,
  expandEffect: 'fadeIn',
  expandText: 'Celý text »', 
  expandPrefix: '... ',
  userCollapseText: 'Méně textu »'
});

$('#expander2').expander({
  slicePoint: 400, 
  widow: 2,
  preserveWords: true,
  expandEffect: 'fadeIn',
  expandText: 'Více »', 
  expandPrefix: '... ',
  userCollapseText: 'Méně »'
});

if(!jQuery.browser.msie){
$('.tooltip').bt({
  trigger: ['focus', 'blur'],
  contentSelector: "$(this).attr('title')",
  positions: ['right']
  });
} 

$('#search_text').autocomplete({
        source: '/system/whisp',
        minLength: 3,
        select: function( event, ui ) {
                var output;
                    
                    if(ui.item.typ == 'cl'){
                      window.location.href = $('#webx').val()+ui.item.seo+'/';   
                    }else if(ui.item.typ == 'sk'){
                      window.location.href = $('#webx').val()+'interpreti/'+ui.item.seo+'/';  
                    }else if(ui.item.typ == 'pis'){
                      window.location.href = 'http://pisne.'+$('#webz').val()+ui.item.seo+'/';  
                    }else if(ui.item.typ == 'alb'){
                      window.location.href = $('#webx').val()+ui.item.seo+'/';  
                    }else{
                      window.location.href = $('#webx').val()+'lide/'+ui.item.seo+'/';  
                    }
                      
                return false;
        },      
        search: function(event, ui) {            
            $("#loader").show();
        }
        
            })
            
    .data( "autocomplete" )._renderItem = function( ul, item ) {
        
        var output;
        
        if(item.typ == 'x'){
            $("#loader").hide();          
            this.autocomplete( "close" );
            return null;
        }    
        
        $("#loader").hide(); 
        
        if(item.typ == 'cl'){
          output = '<a href="/'+item.seo+'/"><strong>'+item.value+'</strong> <span style="color:blue;">(Článek)</span></a>';   
        }else if(item.typ == 'sk'){
            
           var povolani = '';
           if(item.povolani){
               povolani = '<span style="color:green;">('+item.povolani+')</span>'; 
           }  
           output = '<a href="/interpreti/'+item.seo+'/"><strong>'+item.value+'</strong> '+povolani+' <span style="color:blue;">(Profil interpreta)</span></a>';    
        
        }else if(item.typ == 'pis'){
        
           output = '<a href="http://pisne.'+$('#webz').val()+item.seo+'/"><strong>'+item.value+'</strong> <span style="color:blue;">(Píseň)</span></a>';
        
        }else if(item.typ == 'alb'){
        
           output = '<a href="/'+item.seo+'/"><strong>'+item.value+'</strong> <span style="color:blue;">(Album)</span></a>';
     
        }else{
            
           var povolani = '';
           if(item.povolani){
               povolani = '<span style="color:green;">('+item.povolani+')</span>'; 
           }  
           output = '<a href="/lide/'+item.seo+'/"><strong>'+item.value+'</strong> '+povolani+' <span style="color:blue;">(Profil osobnosti)</span></a>';    
       
        }  
        
        return $( "<li></li>" )
                .data( "item.autocomplete", item )
                .append( output )
                .appendTo(ul);
    };  
     
  var container = $('div.errorContainer');
        
  $('#register').validate({meta: "validate", errorContainer: container, errorLabelContainer: $("ol", container), wrapper: 'li' });
  
  $('.nologin').click(function(){
    
   showLoginDialog();    
   return false;
   
  });       
      
  $('.albafanup').click(function(){

     var objekt = $(this);
     var payload = '/system/alba-fans/?id='+this.name;
     var titul = '';
     
     $.get(payload, function(data) {  
        data = data.split('$');
        if(data[0] == 0){
            titul = 'Do oblíbených';
            objekt.html(titul);
            $('#os_pocet_albafan').text(data[1]);
        }else if(data[0] == 1){
            titul = 'Odebrat';
            objekt.html(titul);
            $('#os_pocet_albafan').text(data[1]);
        }else{
            showLoginDialog();  
        }    
       
     });  
    
   });  
   
   $('.pisnefanup').click(function(){

     var objekt = $(this);
     var payload = '/system/pisne-fans/?id='+this.name;
     var titul = '';
     
     $.get(payload, function(data) {  
        data = data.split('$');
        if(data[0] == 0){
            titul = 'Do oblíbených';
            objekt.html(titul);
            $('#os_pocet_albafan').text(data[1]);
        }else if(data[0] == 1){
            titul = 'Odebrat';
            objekt.html(titul);
            $('#os_pocet_albafan').text(data[1]);
        }else{
            showLoginDialog();  
        }    
       
     });  
    
   });      
        
});

///// fandeni sekce

function removeNazor(id)
{
    if(confirm('Chcete názor smazat ?')){
        
        var payload = '/system/fans-message/?id='+id+'&text=';      
         $.get(payload, function(nazev) {
            if(nazev == 1){
              location.reload(true);     
            }    
          }); 
      
    }       
} 

function editNazor(id)
{

$('#nazor2').val($('#nazorid_'+id).text());
    
$("#editNazor").attr('title', 'Editace názoru - ShowBiz.cz');
$("#editNazor").dialog({autoOpen:false,modal:true,width:440,height:360,buttons:{
                     "Odeslat":function(){
                         $(this).dialog("close"); editNazorAction(id); }
                         }});
$("#editNazor").dialog('open');    

      
}

function editNazorAction(id)
{
var text = $('#nazor2').val();
    
var payload = '/system/fans-message/?id='+id+'&text='+text;      
 $.get(payload, function(nazev) {
    if(nazev == 1){
      location.reload(true);     
    }    
  });   
}    

function napisNazor (id, skupina, typ)   
{ 
 var payload = '/system/get-nazev/?id='+id+'&typ='+skupina;   
 $.get(payload, function(nazev) {  
    
    $('#nazor_name').text(nazev);
    $(".nazor_radio").attr("checked", "");
    $("#radio_"+typ).attr("checked", "checked");
    $('#nazor').text('');
    $('#nazor').val('');
        
    $("#napisNazor").attr('title', 'Napsat názor - ShowBiz.cz');
    $("#napisNazor").dialog({autoOpen:false,modal:true,width:440,height:390,buttons:{
                     "Odeslat":function(){
                         $(this).dialog("close"); fandiNazor(id, skupina, typ, 1); }, 
                     "Přeskočit":function(){
                         $(this).dialog("close"); fandiNazor(id, skupina, typ, 0); }
                         }});
    $("#napisNazor").dialog('open');    
        
 });   
}

function fandiNazor (id, skupina, typ, status) {
  
  if(status == 0){
   $('#nazor').text('');
   $('#nazor').val('');
  }
  
  var text = $('#nazor').val();
  var typ_nazor = $('.nazor_radio:checked').val();
  var payload = '/system/fans/?id='+id+'&skupina='+skupina+'&typ='+typ+'&text='+text+'&ntyp='+typ_nazor;
  
  $.get(payload, function(data) {
    var obj = jQuery.parseJSON(data);
    
    if(obj.err){
       showLoginDialog();    
    }else{    
       if(typ_nazor == 2){  
         if(text != '' && $('#fanl_'+id).length < 1){ 
           location.reload(true);
         } 
       }else{
        
        if($('#fan_'+id).length > 0){
          if(obj.refresh){
              location.reload(true);
          }else{            
              $('#fan_'+id).text(obj.msg_up);
              $('#nfan_'+id).text(obj.msg_down);  
              
              $('#pocet_fan_'+id).text(obj.fans); 
              $('#pocet_nfan_'+id).text(obj.afans);
          }
        }else if($('#fanl_'+id).length > 0){
              $('#fanl_'+id).removeClass('nefandim');
              $('#nfanl_'+id).removeClass('muzebyt');
             if(obj.fansl){
              $('#fanl_'+id).addClass('nefandim');  
             }
             if(obj.afansl){
              $('#nfanl_'+id).addClass('muzebyt');  
             }   
              
        }    
      } 
    }
  });  
}    
///// konec fandeni sekce

/*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;
}

validateDiscussionForm = function(loggedIn)
{   
      
    if (!validatorRequire('.dsc_name', $.i18n('Please enter name'), $.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(){
    $("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

    });
}
