// JavaScript Document

function setCookieFull (name, value, expires, path, domain, secure) {
      document.cookie = name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
}

function submitForm()
{	
   if(document.getElementById("mediaars_name").value != "")
       document.getElementById("mediaars_form").submit();    
   else
	   document.getElementById("mediaars_name").value = "Гость";      
}

function show(obj)
{
   var mess =  document.getElementById(obj);
   if(!mess) return;
   mess.style.display = mess.style.display != 'none' ? 'none' :'';  	
}

function linkAnchorDetect(){
  var url = document.location.href;
  var id = url.substr(url.indexOf('#')+1);
  show(id);
}

function download(obj){	
	var url = "%library downloadVideo("+obj+")% ";
	document.contextual(document.tags.a).onClick=url;
}

function showPopup(){
	jQuery.noConflict();	
	jQuery.ajax({
    type: "GET",
	url: "/arsamod/onlinetv/options.xml",
	dataType: "xml",
	success: function(xml) {
		jQuery(xml).find('data').each(function(){
				 var enabled = jQuery(this).find('enabled').text();
				 if (enabled == 0){
					 jQuery(function(){
                            window.scrollTo(0,0);
                            var winH = jQuery(window).height();
                            var winW = jQuery(window).width();

                            var y = winH/2-jQuery("#popup_dialog").innerHeight()/2;
                            var x = winW/2-jQuery("#popup_dialog").innerHeight()/2;

							// для корректной работы flash	 													   
						   jQuery("object#intro").hide();
						   jQuery("embed#intro").hide();
                           jQuery("#popup_dialog").show();
						   jQuery("#popup_dialog").dialog({
                                width: 452,                                
								autoOpen: true,
								resizable: false,
								draggable: false,
                                modal: true,
                                position: [x,y]
						   });
                           window.scrollTo(0,0);
                           //var dialog = jQuery('#popup_dialog');
                           //center(dialog);
						   jQuery("#closeDialog").click(function(){
									jQuery("#popup_dialog").dialog("close");
									jQuery("object#intro").show();
								    jQuery("embed#intro").show();
							}); 
						});
			  } //if (enabled == 1)
		  });
		}
	});	

}

function showTips()
{
	jQuery.noConflict();
	jQuery(function () {
    jQuery('.bubbleInfo').each(function () {
        var distance = 20;
        var time = 250;
        var hideDelay = 5;

        var hideDelayTimer = null;

        var beingShown = false;
        var shown = false;
        var trigger = jQuery('.trigger', this);
        var info = jQuery('.popup', this).css('opacity', 0);


        jQuery([trigger.get(0), info.get(0)]).mouseover(function () {
            if (hideDelayTimer) clearTimeout(hideDelayTimer);
            if (beingShown || shown) {
                return;
            } else {
                beingShown = true;

                info.css({
                    top: -30,
                    left: 50,
                    display: 'block'
                }).animate({
                    top: '-=' + distance + 'px',
                    opacity: 1
                }, time, 'swing', function() {
                    beingShown = false;
                    shown = true;
                });
            }

            return false;
        }).mouseout(function () {
            if (hideDelayTimer) clearTimeout(hideDelayTimer);
            hideDelayTimer = setTimeout(function () {
                hideDelayTimer = null;
                info.animate({
                    top: '-=' + distance + 'px',
                    opacity: 0
                }, time, 'swing', function () {
                    shown = false;
                    info.css('display', 'none');
                });

            }, hideDelay);

            return false;
        });
    });
});
}

function makeShortenURL(){		
		// wait until page is loaded to call API
		BitlyClient.addPageLoadEvent(function(){
			BitlyCB.myShortenCallback = function(data) {
				// this is how to get a result of shortening a single url
				var result;
				for (var r in data.results) {
					result = data.results[r];
					result['longUrl'] = r;
					break;
				}
				var a = document.getElementById("twitter");
				a.setAttribute('href', a.getAttribute('href')+"+"+result['shortUrl']);

			}
			BitlyClient.shorten(document.location, 'BitlyCB.myShortenCallback');			
		});						  
}

function filtersArsMeida(){
    jQuery.noConflict();
    jQuery(function() {
           /* jQuery("#filterDateForm").validate({
               rules: {
                 date1: {
                   required: true
                 },
                 date2: {
                   required: true
                 }
               },
               messages: {
                 date1: {
                   required: "Нужно указать дату"
                 },
                 date2: {
                   required: "Нужно указать конечную датуe"
                 }
               }
    }); */

            jQuery("#filterDate1").datepicker();
            jQuery("#filterDate2").datepicker();
    });

}

function showFilters(type){
    if (type == 'date') {
        jQuery("#filterDateDiv").show();
        jQuery("#filterThemeDiv").hide();
        jQuery("#filterKeywordsDiv").hide();
        jQuery("#filterPopularDiv").hide();
        jQuery("#filterExpertDiv").hide();
    } else if (type == 'theme'){
        jQuery("#filterDateDiv").hide();
        jQuery("#filterThemeDiv").show();
        jQuery("#filterKeywordsDiv").hide();
        jQuery("#filterPopularDiv").hide();
        jQuery("#filterExpertDiv").hide();
    } else if (type == 'keywords'){
        jQuery("#filterDateDiv").hide();
        jQuery("#filterThemeDiv").hide();
        jQuery("#filterKeywordsDiv").show();
        jQuery("#filterPopularDiv").hide();
        jQuery("#filterExpertDiv").hide();
    } else if (type == 'popular'){
        jQuery("#filterDateDiv").hide();
        jQuery("#filterThemeDiv").hide();
        jQuery("#filterKeywordsDiv").hide();    
        jQuery("#filterPopularDiv").show();
        jQuery("#filterExpertDiv").hide();
    } else if (type == 'expert'){
        jQuery("#filterDateDiv").hide();
        jQuery("#filterThemeDiv").hide();
        jQuery("#filterKeywordsDiv").hide();
        jQuery("#filterPopularDiv").hide();
        jQuery("#filterExpertDiv").show();
    }
}

function getUrlParams()
{
    var params = [];

    var url = window.location+"";
    var params_index = url.indexOf("?");
    if(params_index != -1)
    {
        var params_str = url.substr(params_index+1);
        var params_full = params_str.split('&');
        for(var i=0; i<params_full.length; i++)
        {
            var tmp = params_full[i].split('=');
            params[tmp[0]] = tmp.length == 2 ? tmp[1] : '';
         }
    }

    return params;
}

function lookUrl4OpenFilter(){
    var params = getUrlParams();
    var type = params['type'];

    if(type == 'date') showFilters('date');
    if(type == 'theme') showFilters('theme');
    if(type == 'keywords') showFilters('keywords');
    if(type == 'expert') showFilters('expert');
}


function toolTipsFund(){
    var tooltipIndex = 0;
    jQuery('th.trigger').each(function(){
        var pos =  jQuery(this).offset();
        var left = pos.left-155;
        var top = pos.top-138-(15*(++tooltipIndex))*2;
        var alink = jQuery('a.triggerTitle', jQuery(this));

        alink.tooltip({ effect: 'slide', opacity: 1, offset: [-top, -left]});
    });
}

function mark(id, pid, value) {
    var voteDate = getCookie('mark_'+id);
    if (voteDate == '') {
        jQuery.ajax({
            url: '/comments/commentVote/'+id+'/'+pid+'/' + value+'/',
            async: false,
            success: function(data) {
                if (data == 0) jQuery('#mark-'+id).css('color','#666666').text(data);
                else if (value == 'plus') jQuery('#mark-good-'+id).text('+'+data);
                else if (value == 'minus') jQuery('#mark-bad-'+id).text(data);
            }
        });
    } else {
        alert('Вы уже голосовали!');
    }
}

/*function mark(id, pid, value) {
    var voteDate = getCookie('mark_'+id);
    if (voteDate == '') {
        jQuery.ajax({
            url: '/comments/commentVote/'+id+'/'+pid+'/' + value+'/',
            success: function(data) {
                if (data < 0) jQuery('#mark-'+id).css('color','#FC9090').text(data);
                if (data > 0) jQuery('#mark-'+id).css('color','#008E00').text('+'+data);
                if (data == 0) jQuery('#mark-'+id).css('color','#666666').text(data);
            }
        });
    } else {
        alert('Вы уже голосовали!');
    }
}*/

/* в случае если оценка плохая за коммент он скрывается
function badComments(mark, id){
    if (mark < -5){
        jQuery('#comment-'+id).css('color','#B7B7B7');
        jQuery('#comment-title-'+id+' span').css('color','#B7B7B7');
        jQuery("#comment-title-"+id+" img").attr("src","/images/cms/ico_forum_guest.gif");

        jQuery('#comment-'+id).mouseover(function(){
            jQuery('#comment-'+id).css("color","#666666");
            jQuery('#comment-title-'+id+' span').css('color','#666666');
            jQuery("#comment-title-"+id+" img").attr("src","/images/cms/ico_forum_sv.gif");
        });

        jQuery('#comment-'+id).mouseout(function(){        
            jQuery('#comment-'+id).css("color","#B7B7B7");
            jQuery('#comment-title-'+id+' span').css('color','#B7B7B7');
            jQuery("#comment-title-"+id+" img").attr("src","/images/cms/ico_forum_guest.gif");
        });
    }

   if (mark < 0) jQuery('#mark-'+id).css('color','#FC9090');
   if (mark == 0) jQuery('#mark-'+id).css('color','#666666');
   if (mark > 0) jQuery('#mark-'+id).css('color','#008E00').text('+'+mark);
} */    

function createElementForm(name){
        var optBlock = jQuery('.optioned-block-'+name);
        if (optBlock != 0){
            var newInputs = [];
            var i = optBlock.size() + 1;
            var curActiveBlock = jQuery('.optioned-block-'+name).eq(i-2)
            curActiveBlock.after('<span class="'+optBlock.attr("class")+'"></span>');
            var newBlock = jQuery('.optioned-block-'+name).eq(i-1)
            newBlock.hide();
            curActiveBlock.find('input').each(function(index) {
                 var inputElement = jQuery(this).clone();
                 var originalName = inputElement.attr('name');
                 //var regExp = /optioned\[\w+\]\[\d+\]\[(\d+)\]/i
                 var regExp = new RegExp("\["+(i-2)+"\]", "i");
                 var newName = originalName.replace(regExp, i-1);
                 newInputs.push(inputElement.attr('name', newName));
            });

            for(var index in newInputs) {
                newBlock.append(newInputs[index]);
            }

            newBlock.find('input').each(function(){
                var $input = jQuery(this); 
                $input.wrap('<div class="jqTransformInputWrapper"><div class="jqTransformInputInner"><div></div></div></div>');
                var $wrapper = $input.parent().parent().parent();
                $input
				.focus(function(){$wrapper.addClass("jqTransformInputWrapper_focus");})
				.blur(function(){$wrapper.removeClass("jqTransformInputWrapper_focus");})
				.hover(function(){$wrapper.addClass("jqTransformInputWrapper_hover");},function(){$wrapper.removeClass("jqTransformInputWrapper_hover");});
            });

            newBlock.show('slow');
            jQuery('#anketa_page_dialog').jScrollPane({
                        verticalDragMinHeight: 18,
                        verticalDragMaxHeight: 18
                });
        }
}

function accordionInit(){
    jQuery("#accordion").accordion({ autoHeight: false });
    jQuery("#headAccordion").show();
    jQuery("#accordion").show();
}

function setValidateForms(){
    // всплывающие окна
    jQuery('.popup-form').each(function(){
         jQuery(this).validate();
    });
    // обычная форма без попупов
    jQuery('.simple-form').each(function(){
         jQuery(this).validate({
            invalidHandler: function(form, validator) {
                checkboxValidate(".simple-form");
            },
            submitHandler: function(form) {
                if (!checkboxValidate(".simple-form")) return false;                
                jQuery(form).ajaxSubmit(function(data) {
                        formInit(this, data);
                        jQuery(form).get(0).reset();
                        jQuery(form).find(".jqTransformChecked").removeClass("jqTransformChecked");
                });
            }
        });
      });
}

function popupFormInit(form, data){
    var $anketaForm = jQuery(form);
    var formCallBackName = $anketaForm.attr('id')+'-callback';

    jQuery('<div/>', {
        id: formCallBackName
    }).appendTo('body').hide();
        
    $anketaForm.resetForm();
    jQuery(".close").trigger('click');
    jQuery("#"+formCallBackName).dialog({
                 dialogClass: 'popup-anketa-callback',
                 resizable: false,
                 draggable: false,
                 modal: true,
                 width: 500
    });

    jQuery("#"+formCallBackName).html('<div style="margin-bottom: 10px; line-height:18px;">'+data+'</div><div style="text-align:center;"><input class="button-small-ok" type="submit" value="" class="submit ie6hov" /></div>');
    jQuery('.button-small-ok').click(function() {
                 jQuery("#"+formCallBackName).dialog("close");
    });
}

function isError(data){
    var reg=/error-callback/;
    return reg.test(data);
}

function popupRoundFormInit($currentForm, data){
    if (isError(data)){
        jQuery('#base-callback #error-callback').remove();
        jQuery('#base-callback .title').after(data);
        $currentForm.context.beenSubmitted = false;
    } else {
        jQuery(".close").trigger('click');

        var formCallBackName = 'base-callback';

        jQuery('<div/>', {
                 id: formCallBackName
        }).appendTo('body').hide();

        jQuery("#"+formCallBackName).dialog({
                     dialogClass: 'popup-form-callback',
                     resizable: false,
                     draggable: false,
                     modal: true,
                     maxHeight: 0,
                     height: 0
        });

        var dialog = jQuery(".popup-form-callback");

        var topPos = dialog.css('top');
        var leftPos = dialog.css('left');

        jQuery(".popup-form-callback .hidden-box").css('left', leftPos).css('top', topPos);

        jQuery("#"+formCallBackName).html(data);

        jQuery('.close').click(function(){
            jQuery("#"+formCallBackName).dialog("close");
        });
        jQuery('.button-small-ok').click(function() {
                        jQuery("#"+formCallBackName).dialog("close");
        });

        getInitalPrizez();
    }
}

function formInit(formElement, data){
    var $form = jQuery(formElement);
    var formCallBackName = $form.attr('id')+'-callback';
     
    jQuery('<div/>', {
        id: formCallBackName
    }).appendTo('body').hide();

    jQuery("#"+formCallBackName).dialog({
                 dialogClass: 'popup-anketa-callback',
                 resizable: false,
                 draggable: false,
                 modal: true,
                 width: 500
    });

    jQuery("#"+formCallBackName).html();
    jQuery('.button-small-ok').click(function() {
                 jQuery("#"+formCallBackName).dialog("close");
    });
}

function addComment(){
    show('form_comment');
    if (jQuery("#form_comment").css('display') == 'none'){
        jQuery('#add_comment').text("Оставить комментарий");
    } else{
        jQuery('#add_comment').text("Скрыть форму");
    }
}

function checkboxValidate(form){
    var isChecked = false;
    jQuery(form).find("input[type='checkbox']").each(function(){
        if (jQuery(this).is(':checked')){
            jQuery(this).parent().next().removeClass('red');
            isChecked = true;
        } else{
            jQuery(this).parent().next().addClass('red');
            isChecked = false;
        }
    });
    
    return isChecked;
}

function changeItem(element){
    var id = "#"+jQuery(element).attr('rel');
    var baseId = "#"+jQuery(element).attr('rev');
    jQuery(id).toggle();
    jQuery(baseId).toggle();
}

function showResponse(responseText, statusText, xhr, $form)  {
           popupRoundFormInit($form, responseText);
}

function showRequest(formData, jqForm, options) {
    var formElement = jqForm[0];

    if (formElement.beenSubmitted) return false;

    formElement.beenSubmitted = true;

    return true;
}

function getInitalPrizez(){
           //alert(jQuery('#popup-auth-prize').html());

           jQuery('#popup-auth-prize form.jqtransform').jqTransform();

           jQuery.validator.addMethod("notEqual", function(value, element, param) {
               return this.optional(element) || value != jQuery(param).val();
           }, "Пароль не должен совпадать с логином");

           jQuery.validator.addMethod("checkbox", function(value, element, param) {
               if (jQuery(element).val() == 'true'){
                    jQuery(element).parent().next().addClass('red');
                    return false;
               } else{
                    jQuery(element).parent().next().removeClass('red');
                    return true;
               }
           }, "");

           var options = {
                  beforeSubmit:  showRequest,
                  success: showResponse
           };

           jQuery('#auth-form').validate({
                submitHandler: function(form) {
                       jQuery(form).ajaxSubmit(options);
                       return false;
                }
           });

           jQuery('#reg-form').validate({
                            ignore: [],
                            rules: {
                                password: {
                                    required: true,
                                    minlength: 3
                                },
                                password_confirm: {
                                    required: true,
                                    equalTo: "#password1"
                                },
                                login: {
                                    required: true,
                                    minlength: 3,
                                    maxlength: 40,
                                    notEqual: "#password1"
                                },
                                email: {
                                    required: true,
                                    email: true
                                },
                                agree: {
                                    checkbox: true
                                }
                            },
                            messages: {
                                password: {
                                    required: "заполните поле",
                                    minlength: "слишком короткий пароль"
                                },
                                password_confirm: {
                                    required: "заполните поле",
                                    equalTo: "не совпадают пароли"
                                },
                                login: {
                                    required: "заполните поле",
                                    minlength: "слишком короткий логин",
                                    maxlength: "слишком большой логин"
                                },
                                email: {
                                    required: "заполните поле",
                                    email: "не верный формат email"
                                }
                            },
                            submitHandler: function(form) {
                                jQuery(form).ajaxSubmit(options);
                                return false;
                            }
                   });

           jQuery('.change-item').click(function(){
               changeItem(this);
           });
}

jQuery(document).ready(function(){

        toolTipsFund();

        accordionInit();

        jQuery("form.jqtransform").jqTransform();
        //TODO: для того чтобы не отображалась старая форма стремная сначала скрываем блок с формой а потом показываем
        //TODO: также возможно по хорошему имело бы смысл причесать все стили изначальные для формы чтобы это не делать...
        jQuery(".form-border").show();

        jQuery(".tooltip_window").tooltip({ relative:'false', position:'center right', opacity: '1', delay: 500, offset:[5,5]});

        setValidateForms();

        jQuery(".popup-form").ajaxForm(function(data) {
            popupFormInit(this, data);
            jQuery(".popup-form").get(0).reset();
        });

        var options = {
            success: showResponse
        };

        jQuery(".popup-round-form").submit(function(){
            jQuery(this).ajaxSubmit(options);
            return false;
        });

        jQuery('.close').click(function(){
            var rel = jQuery(this).attr('rel');
            var id = "#"+rel;

            if (jQuery('a[rel="'+rel+'"]').hasClass('dotted-link')){
                     jQuery('a[rel="'+rel+'"]').removeClass('active').addClass('dotted');
            }

            jQuery('a[rel="'+rel+'"]').removeClass('active');
            jQuery(id).hide();

        });

        jQuery(".template-form-value").focus(function(){
               var $element = jQuery(this);

               if (this.value == '') this.value = $element.attr('original');
               else if (!$element.attr('original') || this.value == $element.attr('original')){
                     $element.attr('original', this.value);
                     this.value = '';
               }
           });

        jQuery(".template-form-value").blur(function(){
            var $element = jQuery(this);

            if (this.value == '') this.value = $element.attr('original');
            else if (this.value == $element.attr('original')){
                    $element.attr('original', this.value);
                    this.value = '';
                }
        });

        jQuery('.dialog-show').click(function(){

            var id = "#"+jQuery(this).attr('rel');
            
            if (jQuery(this).hasClass('dotted-link')){
                if (jQuery(id).css('display') == 'none'){
                        jQuery(id).show();
                        jQuery(this).addClass('active').removeClass('dotted');
                }
                else {
                        jQuery(id).hide();
                        jQuery(this).removeClass('active').addClass('dotted');
                }
            } else {
                if (jQuery(id).css('display') == 'none') jQuery(id).show();
                else jQuery(id).hide();
            }

        });

        jQuery("ul.social li").attr("title","Компания не имеет отношения и не несет ответственности за высказывания, прогнозы, оценки и другую информацию о продуктах и услугах компании, распространяемую различными лицами на форумах, блогах , различных информационных ресурсах. Официальным источником раскрытия информации о продуктах и услугах компании является сайт www.arsagera.ru");

        jQuery("#add_comment").click(function(){
            addComment();
        });

        jQuery('.change-item').click(function(){
            changeItem(this);
        });
});
