//Cookies
var options = { path: '/', expires: 365 };

iseparator = "-&&-";
oseparator = "-||-";
favorites_cookie = new Array();

$(document).ready(function(){

	$('.lines:odd, .forum_preview_table tr:odd').css('background', '#ececf3');
	$('.lines:even, .forum_preview_table tr:even').css('background', '#f9f9fb');

	ParseNewsCookie();
	CreateFavTab();
});


function setSatrs(){
	for(var i=0; i<favorites_cookie.length; i++){
		var item = favorites_cookie[i];
		var it = replace_string(item.lnk, "/", "");

		setStar(it);
	};
};

function replace_string(txt, cut_str, paste_str){
	var f=0;
	var ht='';
	ht = ht + txt;
	f=ht.indexOf(cut_str);

	while(f!=-1){
		f=ht.indexOf(cut_str);
		if(f>0){
			ht = ht.substr(0,f) + paste_str + ht.substr(f+cut_str.length);
		};
	};
	return ht;
};

function setStar(id){
	var it = $('#isfav_'+id);
	it.attr('src', '/pic/news/icons/star_u.gif').attr('title', 'Новость в «Моих закладках»');;

	var ibt = $('#np_adder_'+id+' .aab_icon');
	ibt.attr('src', '/pic/news/icons/star_s.png').attr('title', 'Новость в «Моих закладках»');
};

function unsetStar(id){
	var it = $('#isfav_'+id);
	it.attr('src', '/pic/news/icons/star_a.gif').attr('title', 'Нет в «Моих закладках»');;

	var ibt = $('#np_adder_'+id+' .aab_icon');
	ibt.attr('src', '/pic/news/icons/star.png').attr('title', 'Добавить в «Мои закладки»');
};

function SaveNewsCookie(c_arr){
	var cookie = '';
	for(var i=0; i<c_arr.length; i++){
		if(i == 0){
			cookie += c_arr[i].lnk + iseparator + c_arr[i].title;
		}else{
			cookie += oseparator + c_arr[i].lnk + iseparator + c_arr[i].title;
		}
	}
	$.cookie('ixbt_news_favorites', cookie, options);
};

function ParseNewsCookie(){
	if($.cookie('ixbt_news_favorites')){
		$('.favorites_block').show();
		var tmp_cook = $.cookie('ixbt_news_favorites').split(oseparator);
		for(var i=0; i<tmp_cook.length; i++){
			var tmp = tmp_cook[i].split(iseparator);
			favorites_cookie.push({lnk: tmp.shift(), title: tmp.shift()});
		}
	}else{
		$('.favorites_block').hide();
	}
};

function addFav(id, title){
	if(favorites_cookie.length < 20){
		setStar(replace_string(id, "/", ""));
		title = title.substr(0, 28)+'...';
		chk = true;
		for(var i=0; i<favorites_cookie.length; i++){
			if(favorites_cookie[i].lnk == id){
				chk = false;
			}
		};

		if(chk == true){
			favorites_cookie.push({lnk: id, title: title});
		};

		$('#fav_tab').empty();
		SaveNewsCookie(favorites_cookie);
		CreateFavTab();

		if($('#fav_tab').html() != ''){
			$('.favorites_block').show();
		};
	}else{
		alert("У вас максимальное количество объектов в «избанных новостях»!")
	};
};

function CreateFavTab(){
	if(favorites_cookie.length > 0){
		$('#fav_tab').append('<tr id="ft_head"><td height="25" colspan="2"><span id="total_favs"><span>'+favorites_cookie.length+'</span>/20</span><span id="clean_favs"><a href="javascript:void(0)" onclick="cleanFav()">Очистить</a></span></td></tr>');
	};

	favorites_cookie.reverse();

	for(var i=0; i<favorites_cookie.length; i++){
		var item = favorites_cookie[i];
		$('#fav_tab').append('<tr id="fav_item_'+i+'"><td height="20"><a href="/news/all/index.shtml?'+item.lnk+'">'+item.title+'</a></td><td width="20"><a href="javascript:void(0)" onclick="delFav(' + "'" + item.lnk + "'" + ')"><img src="/pic/news/icons/minus.gif" width="16" height="16" alt="Удалить" title="Удалить из «Моих закладок»" /></a></td></tr>');
	};
};

function delFav(id){
	unsetStar(replace_string(id, "/", ""));
	var x = [];

	for(var i=0; i<favorites_cookie.length; i++){
		if(favorites_cookie[i].lnk != id){
			x.push(favorites_cookie[i]);
		}
	}

	$('#fav_tab').empty();
	favorites_cookie = x;
	SaveNewsCookie(favorites_cookie);
	CreateFavTab();

	if($('#fav_tab').html() == ''){
		$('.favorites_block').hide();
	}
};

function cleanFav(){
	if(confirm("Удалить все новости из списка избранных новостей?")){
		var ar = favorites_cookie;

		for(var i=0; i < ar.length; i++){
			delFav(ar[i].lnk);
		};
	};
};

function toTheTop(){
	$('html, body').animate({
		scrollTop: 0
	}, 1000, "swing");
};


var page_info = {
    loc: document.location.href,
    title: $('title').text(),
    desc: $('meta[name="description"]').attr('content')
}

var socials = {
    socials: new Array(
        { id: 1, name: 'Написать ВКонтакте', shortcode: 'vk'},
        { id: 2, name: 'Написать в Facebook', shortcode: 'fb'},
        { id: 3, name: 'Написать в Twitter', shortcode: 'tw'},
        { id: 4, name: 'Написать в Google+', shortcode: 'gp'},
        { id: 5, name: 'Написать в Одноклассниках', shortcode: 'od'}
    ),

    getSocialById: function(id){
        id = parseInt(id);

        if(id > 0 && id <= this.socials.length+1){
            for(var i=0, l=this.socials.length; i<l; i++){
                if(id == this.socials[i].id){
                    return this.socials[i];
                };
            };
        }
    },

    showSocials: function(obj){
        $('.social_selector').remove();

        var content = new String();

        for(var i = 0, l = this.socials.length; i < l; i++){
            content += '<a soc_id="' + this.socials[i].id + '" href="javascript:void(0)" title="' + this.socials[i].name + '" class="social_icon_16x16 si16_' + this.socials[i].shortcode + '"></a>';
        };

        var soc_HTML =
                '<div class="social_selector">' +
                    '<div class="ss_top"></div>' +
                    '<div class="ss_content">' +
                        '<div class="ss_inner">' +
                            content +
                            '<div class="cl"></div>' +
                        '</div>' +
                    '</div>' +
                '</div>';

        $('body').prepend(soc_HTML);

        $('.social_selector .social_icon_16x16').one('click', function(){
            $('.social_selector').remove();

            obj.one('click', function(){
                socials.showSocials($(this));
            });

            socials.go(obj, $(this).attr('soc_id'));
        });

        obj.one('click', function(){
            $('.social_selector').remove();
            obj.one('click', function(){
                socials.showSocials($(this));
            });
        });

        $('.social_selector').css({
            top: obj.offset().top,
            left: obj.offset().left,
            marginLeft: -$('.social_selector').width()/2+obj.width()/2,
            marginTop: -$('.social_selector').height()-2
        });

        $('.social_selector').bind('mouseleave', function(){
            $(this).remove();
            obj.one('click', function(){
                socials.showSocials($(this));
            });
        });
    },

    getUrl: function(data){
        var result = new String();

        var url = encodeURIComponent(data.url);
        var text = encodeURIComponent(data.text);

        switch(data.id){
            //FB
            case 1 : {
                result = 'http://vkontakte.ru/share.php?url=' + url;
            }; break;

            //VK
            case 2 : {
                result = 'http://www.facebook.com/sharer/sharer.php?src=sp&u=' + url;
            }; break;

            //Twitter
            case 3 : {
                result = 'http://twitter.com/intent/tweet?text=' + text + '&url=' + url;
            }; break;

            //Google +
            case 4 : {
                result = 'http://www.google.com/buzz/post?url=' + url + '&message=' + text;
            }; break;

            //Odnoklassniki
            case 5 : {
                result = 'http://odnoklassniki.ru/dk?st.cmd=addShare&st.noresize=on&st.s=2&st._surl=' + url;
            }; break;
        };

        return result;
    },

    go: function(obj, id){
        var item = this.getSocialById(id);

        obj.next().attr('soc_id', item.id).find('img').attr('title', item.name).attr('class', 'social_icon_16x16 si16_' + item.shortcode)

        $.cookie('social_default', id, options);

        var url = this.getUrl({
            id      : item.id,
            text    : obj.attr('title_text'),
            url     : obj.attr('url')
        });

        window.open(url, item.name, "width=600,height=300,status=yes,toolbar=yes,menubar=yes");
    },

    add: function(obj){

        var id = 1;

        if(parseInt($.cookie('social_default')) > 0){
            id = parseInt($.cookie('social_default'));
        };

        var item = this.getSocialById(id);

        obj.one('click', function(){
            socials.showSocials($(this));
        });

        var html =  '<a soc_id="' + id + '" href="javascript:void(0)" class="social_icon_ph">' +
                        '<img title="' + item.name + '" class="social_icon_16x16 si16_' + item.shortcode + '" src="/pic/tr.gif" />' +
                    '</a>';

        obj.after(html);
				

        obj.next().unbind().bind('click', function(){
            socials.go(obj, $(this).attr('soc_id'));
        });
    },

    init: function(){
        $('.socials_call:not(.socials_activated)').each(function(){
            $(this).addClass('socials_activated');
            socials.add($(this));
        });
    }
};


$(document).ready(function(){
	$('.opening_block_header').each(function(){
		var name = $(this).parent().attr('id');
		if($.cookie(name) == 'closed'){
			$('#'+name+' .opening_block_header').next('.opener_content').hide();
			$('#'+name+' .opening_block_header').find('.arrow_handler').removeClass('arrow_up');
			$('#'+name+' .opening_block_header').find('.arrow_handler').addClass('arrow_down');
		}else{
			$('#'+name+' .opening_block_header').next('.opener_content').show();
			$('#'+name+' .opening_block_header').find('.arrow_handler').removeClass('arrow_down');
			$('#'+name+' .opening_block_header').find('.arrow_handler').addClass('arrow_up');
		};
	});

	$('.opening_block_header .ah_a').click(function(){
		var ob = $(this).parent().parent();
		if(ob.next('.opener_content').css('display') == 'block'){
			ob.next('.opener_content').slideUp(100);
			ob.find('.arrow_handler').removeClass('arrow_up');
			ob.find('.arrow_handler').addClass('arrow_down');
			var name_i = ob.parent().attr('id');
			$.cookie(name_i, 'closed', options);
		}else{
			ob.next('.opener_content').slideDown(100);
			ob.find('.arrow_handler').removeClass('arrow_down');
			ob.find('.arrow_handler').addClass('arrow_up');
			var name_i = ob.parent().attr('id');
			$.cookie(name_i, 'opened', options);
		};
	});

	setSatrs();

    socials.init();
});



var def_font_size = 'def_font_size';

//Font-size
$(document).ready(function(){
	var cfs = $.cookie('def_font_size');
	if(cfs){
		$('body').css('font-size', cfs+'px');
	}
});

function fontSize(param){
	var fs = $('body,td,th').css('font-size');
	var fsVal = fs.substr(0, fs.length-2)*1;

	if(param == 'reduce'){
		if(fsVal > 9){
			$('body').css('font-size', fsVal-=1);
			$.cookie(def_font_size, fsVal, options);
		}else{
			alert('Шрифт уменьшен до минимума!')
		};
	};

	if(param == 'enlarge'){
		if(fsVal < 20){
			$('body').css('font-size', fsVal+=1);
			$.cookie(def_font_size, fsVal, options);
		}else{
			alert('Шрифт увеличен до максимума!')
		};
	};
};

//Flying frame
function getPos(){
	function sctop(){
		return self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop);
	};

	function getClientHeight(){
	  return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientHeight:document.body.clientHeight;
	};

	var h = ($('#copy_to_blog').height())/2;
	var res = (sctop()+getClientHeight()/2)-h;
	return res;
};

function openToBlog(id, section){
	$('#show_toblog_code').click();

	$('#copy_to_blog').show();
	$('#copy_to_blog').animate({top: getPos()+'px'}, 500, function(){
		$('#to_blog_txt').focus();
	});

	var id_clear = id.replace("/", "").replace("/", "");
	var start_obj = $('a[name|=id' + id_clear + ']');

	var to_blog_name = start_obj.next().html();

	var datetime = start_obj.parent().parent('.news_body').next().find('.aab_date').text();

	var to_blog_header = '<div style="font-size: 11px; margin: 0 0 4px 0; letter-spacing: 0; color: #999;">'+datetime.substr(6)+', '+datetime.substr(0,5)+'</div><h1 style="font-size: 14px; font-weight: bold; line-height: 20px; text-align: left; margin: 0 0 4px 0; letter-spacing: 0;"><a style="color: #584F8C" href="http://www.ixbt.com/news/'+section+'/index.shtml?'+id+'">'+to_blog_name+'</a></h1>';

	var to_blog_text = '<div style="line-height: 17px; font-size: 12px;">'+start_obj.parent().parent().find('p:first').text()+'</div><div style="clear: both;"><p><a style="color: #584F8C" href="http://www.ixbt.com/news/'+section+'/index.shtml?'+id+'">Читать далее на iXBT.com</a></p></div>';

	var img_obj = start_obj.parent().parent('.news_body').find('img:first');
	var img = img_obj.attr('src');

	var imgw = 200;

	if(img_obj.width() < 200){
		imgw = img_obj.width();
	}else{
		imgw = 200;
	};

	if(!img){
		imgw = 130;
		img = 'http://www.ixbt.com/pic/tobloglogo.png';
	};

	var to_blog_img = '<a href="http://www.ixbt.com/news/'+section+'/index.shtml?'+id+'"><img style="float: left; margin: 0 15px 5px 0; border: 1px solid #ECECF3;" alt="iXBT" title="'+to_blog_name+'" src="'+img+'" width="'+imgw+'" border="0"></a>';

	var to_blog_result = to_blog_img + to_blog_header + to_blog_text;

	to_blog_result = '<!-- iXBT news code START --><div style="clear: both;"></div><div style="font-size: 12px; font-family: Verdana, Geneva, sans-serif; background: #F9F9FB; padding: 10px 10px; margin: 15px 0; border: 1px solid #C7C3E5; color: #000;">'+to_blog_result+'</div><div style="clear: both;"></div><!-- iXBT news code END -->';

	$('#to_blog_txt').text(to_blog_result);
	$('#to_blog_txt').focus();
    $('#to_blog_txt').select();
	$('#copy_to_blog_preview').html(to_blog_result);
};

$(function(){
	$('#show_toblog_code').click(function(){
		$('#copy_to_blog_copy').show();
		$('#copy_to_blog_preview').hide();
		$('.to_blog_selector li').removeClass('to_blog_selector_active');
		$(this).parent().addClass('to_blog_selector_active');
		$('#to_blog_txt').focus();
    	$('#to_blog_txt').select();
	});

	$('#show_toblog_preview').click(function(){
		$('#copy_to_blog_copy').hide();
		$('#copy_to_blog_preview').show();
		$('.to_blog_selector li').removeClass('to_blog_selector_active');
		$(this).parent().addClass('to_blog_selector_active');
	});
});

function closeToBlog(){
	$('#copy_to_blog').animate({top: '-800px'}, 500);
	$('#copy_to_blog').hide();
};

window.onscroll = function() {
	if($('#copy_to_blog').css('display') == 'block'){
		$('#copy_to_blog').animate({top: getPos()+'px'}, 0);
	};
};

//Font selector
function setFont(num){
	var ft = "Arial, Helvetica, sans-serif";

	if(num == '1'){
		ft = "Arial, Helvetica, sans-serif";
	}

	if(num == '2'){
		ft = "Georgia, 'Times New Roman', Times, serif";
	}

	if(num == '3'){
		ft = "Tahoma, Geneva, sans-serif";
	}

	if(num == '4'){
		ft = "'Times New Roman', Times, serif";
	}

	if(num == '5'){
		ft = "Verdana, Geneva, sans-serif";
	}

	$('body, td, th').css('font-family', ft);
};

$(function(){
	$('.n_type_inner a').live('click', function(){
		setFont($(this).attr('rel'));
		$.cookie('font_type', $(this).attr('rel'), options);
		$('.n_type_inner a').removeClass('n_type_selected');
		$(this).addClass('n_type_selected');
		fontChange();
	});

	if($.cookie('font_type')){
		setFont($.cookie('font_type'));
		$('.n_type_inner a[rel|='+$.cookie('font_type')+']').addClass('n_type_selected');
	}else{
		$('.n_type_inner a[rel|=5]').addClass('n_type_selected');
	};
})


function fontChange(){
	if($('.n_type_selector').css('display') == 'none'){
		$('.n_type_selector').show();
	}else{
		$('.n_type_selector').hide();
	};
};

function resizePlayer(width, height, name){
   var ml = -width/2;

   height = parseInt(height);
   width = parseInt(width);

   $("#"+name+'_container').css({
       width: width,
       height: height,
       marginLeft: ml
   });

   $("#embed_"+name).attr("width", width).attr("height", height);

   $("#spacer_"+name).css({
        height: height
   });
};

function returnPlayer(width, height, name){
   var ml = -width/2;

    height = parseInt(height);
   width = parseInt(width);

   $("#"+name+'_container').css({
       width: width,
       height: height,
       marginLeft: ml
   });

   $("#embed_"+name).attr("width", width).attr("height", height);

   $("#spacer_"+name).css({
        height: height
   });
};

function drawPlayer(id, user_width, user_height){
	var place_width = 450;
	var place_height = user_height;
	user_height = parseInt(user_height);
	user_width = parseInt(user_width);
	var width = user_width;
	var height = user_height;
	if(width == 0 || height == 0){
		width = place_width;
		height = place_height;
	}
// 	Если ролик не пролезает по ширине
	if(width > place_width){
		width = place_width;
		height = parseInt(height*place_width/user_width);
	}
   var name = 'player_'+id;
   var ml = -width/2;

   $("#"+name).css({
       position: 'relative'
   });

    var userAgent = navigator.userAgent.toString().toLowerCase();

    $.ajax({
        url: '/admin/widget.tv.php?action=get_video_xml&id='+id,
        type: 'GET',
        dataType: 'xml',
        success: function(data){

            var movie = $(data).find('item').attr('movie');

            $("#"+name).html('<div id="'+name+'_container"><video controls="controls" width="'+user_width+'"><source src="'+movie+'" type="video/mp4" /></video></div>');
            $("#"+name).find('#spacer_'+name).remove();
            $("#"+name).append('<div id="spacer_'+name+'"></div>');

            var hh = height/2-15;

            $("#"+name+'_container').css({
               position: 'absolute',
               zIndex: 101,
               width: parseInt(width),
               height: parseInt(height),
               marginLeft: ml,
               left: '50%',
               background: '#ccc'
            });

            var so1 = new SWFObject("http://www.filmdepo.ru/swf/player_filmdepo.swf", "embed_"+name, width, height, "9", "#ffffff");
            so1.addParam("allowfullscreen","true");
            so1.addParam("wmode","transparent");
            so1.addParam("allowscriptaccess","always");
            so1.addVariable("showEmbed", "1");
            so1.addVariable("name", name);
            so1.addVariable("id", id);
            so1.addVariable("user_id", "45");
            so1.addVariable("keepAspect", "0");
            so1.addVariable("autoload", "0");
            so1.write(name+'_container');

            $("#spacer_"+name).css({
               height: parseInt(height)
            });
        }
    })
}
