// JavaScript Document

var BrowserDetect = {
        init: function () {
                this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
                this.version = this.searchVersion(navigator.userAgent)
                        || this.searchVersion(navigator.appVersion)
                        || "an unknown version";
                this.OS = this.searchString(this.dataOS) || "an unknown OS";
        },
        searchString: function (data) {
                for (var i=0;i<data.length;i++) {
                        var dataString = data[i].string;
                        var dataProp = data[i].prop;
                        this.versionSearchString = data[i].versionSearch || data[i].identity;
                        if (dataString) {
                                if (dataString.indexOf(data[i].subString) != -1)
                                        return data[i].identity;
                        }
                        else if (dataProp)
                                return data[i].identity;
                }
        },
        searchVersion: function (dataString) {
                var index = dataString.indexOf(this.versionSearchString);
                if (index == -1) return;
                return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
        },
        dataBrowser: [
                {
                        string: navigator.userAgent,
                        subString: "Chrome",
                        identity: "Chrome"
                },
                {       string: navigator.userAgent,
                        subString: "OmniWeb",
                        versionSearch: "OmniWeb/",
                        identity: "OmniWeb"
                },
                {
                        string: navigator.vendor,
                        subString: "Apple",
                        identity: "Safari",
                        versionSearch: "Version"
                },
                {
                        prop: window.opera,
                        identity: "Opera"
                },
                {
                        string: navigator.vendor,
                        subString: "iCab",
                        identity: "iCab"
                },
                {
                        string: navigator.vendor,
                        subString: "KDE",
                        identity: "Konqueror"
                },
                {
                        string: navigator.userAgent,
                        subString: "Firefox",
                        identity: "Firefox"
                },
                {
                        string: navigator.vendor,
                        subString: "Camino",
                        identity: "Camino"
                },
                {               // for newer Netscapes (6+)
                        string: navigator.userAgent,
                        subString: "Netscape",
                        identity: "Netscape"
                },
                {
                        string: navigator.userAgent,
                        subString: "MSIE",
                        identity: "Explorer",
                        versionSearch: "MSIE"
                },
                {
                        string: navigator.userAgent,
                        subString: "Gecko",
                        identity: "Mozilla",
                        versionSearch: "rv"
                },
                {               // for older Netscapes (4-)
                        string: navigator.userAgent,
                        subString: "Mozilla",
                        identity: "Netscape",
                        versionSearch: "Mozilla"
                }
        ],
        dataOS : [
                {
                        string: navigator.platform,
                        subString: "Win",
                        identity: "Windows"
                },
                {
                        string: navigator.platform,
                        subString: "Mac",
                        identity: "Mac"
                },
                {
                        string: navigator.platform,
                        subString: "Linux",
                        identity: "Linux"
                }
        ]

};
BrowserDetect.init();
var headTag = document.getElementsByTagName('head')[0];
script = document.createElement('script');
script.id = 'hiddenScript';
script.type = 'text/javascript';
if(BrowserDetect.browser=="Safari"){
        script.src = 'http://content01.getlive.no/film_og_tv/get_filmleie/tv/filmsearch/movies.js';
}else{
        script.src = 'http://content01.getlive.no/film_og_tv/get_filmleie/tv/filmsearch/movies.js.gz';
}
headTag.appendChild(script);




function utf8_encode(string) {
	string = string.replace(/rn/g,"\n");
	var utftext = "";

	for (var n = 0; n < string.length; n++) {

		var c = string.charCodeAt(n);

		if (c < 128) {
			utftext += String.fromCharCode(c);
		}
		else if((c > 127) && (c < 2048)) {
			utftext += String.fromCharCode((c >> 6) | 192);
			utftext += String.fromCharCode((c & 63) | 128);
		}
		else {
			utftext += String.fromCharCode((c >> 12) | 224);
			utftext += String.fromCharCode(((c >> 6) & 63) | 128);
			utftext += String.fromCharCode((c & 63) | 128);
		}

	}

	return utftext;
}
function utf8_decode(utftext) {
	var string = "";
	var i = 0;
	var c = c1 = c2 = 0;

	while ( i < utftext.length ) {

		c = utftext.charCodeAt(i);

		if (c < 128) {
			string += String.fromCharCode(c);
			i++;
		}
		else if((c > 191) && (c < 224)) {
			c2 = utftext.charCodeAt(i+1);
			string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
			i += 2;
		}
		else {
			c2 = utftext.charCodeAt(i+1);
			c3 = utftext.charCodeAt(i+2);
			string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
			i += 3;
		}

	}

	return string;
}


function movieSearch_enterAsSubmit(e) {
    var ie = document.all;
    var evt = ie ? event : e;
    var input = ie ? evt.srcElement : evt.target;
    if (evt.keyCode == 13) {
        movieSearch_doSearch();
    }
}
function movieSearch_underlinify(theString, searchString){
	if(theString && searchString){
		var startTag = "<span class='movietextUnderlined'>";
		var endTag = "</span>";
		var lcstr = theString.toLowerCase();
		var lcsstr = searchString.toLowerCase();
		var searchStrings = new Array();
		var searchStart = 0;
		var searchIndex = lcstr.indexOf(lcsstr, searchStart);
		while(searchIndex>=0 ){
			searchIndex = lcstr.indexOf(lcsstr, searchStart);
			if(searchIndex>=0){
				searchStart = searchIndex+lcsstr.length;
				var tempSearchString = theString.substr(searchIndex, searchString.length);
				if($.inArray( tempSearchString, searchStrings )==-1){
					searchStrings.push(tempSearchString);
				}
			}
		}
		for(x=0;x<searchStrings.length;x++){
			var tempReplaceString = startTag+searchStrings[x]+endTag
			theString = theString.replace(new RegExp(searchStrings[x], "g"), tempReplaceString);
		}
		return theString;	
	}
}
function movieSearch_switchDisplays(index){
	if(index=="search"){
		$("#extendedInfo").css("display", "none");
		$("#searchResultContainer").css("display", "block");
	}else if(index=="info"){
		selectedImgNr = -1;
		$("#extendedInfo").css("display", "block");
		$("#searchResultContainer").css("display", "none");
	}
}
function movieSearch_doSearch(){
	movieSearch_switchDisplays("search");
	var searchCriteriaField = document.getElementById("searchCriteria")
	var searchCriteria = searchCriteriaField.value;
	var ajaxLoaderSrc = "http://content01.getlive.no/film_og_tv/get_filmleie/tv/filmsearch/images/loaders/whiteBlack16x16.gif";
	var targetId = "searchResultContainer";
	var ajaxLoaderHtml = "<img class='ajaxLoader' src='" + ajaxLoaderSrc + "' />";
	var ajaxLoaderErrorHtml = "Server feil!";
	if(searchCriteria.length>=2){
		if (ajaxLoaderSrc != "") {
			$("#" + targetId).html(ajaxLoaderHtml);
		}
		var allMovieInfo = "";
		var msrc = 0;
		for(var key in media){
			var include = false;
			if(utf8_decode(unescape(media[key]['title'])).toLowerCase().indexOf(searchCriteria.toLowerCase())>-1){
				include = true;
			}
			if(utf8_decode(unescape(media[key]['description'])).toLowerCase().indexOf(searchCriteria.toLowerCase())>-1){
				include = true;
			}
			if(include){
				var lastKey = key;
				msrc++;
				var tempTitle = unescape(media[key]['title']);
				var tempDescription = unescape(media[key]['description']);
				tempTitle = movieSearch_underlinify(tempTitle, searchCriteria);
				tempDescription = movieSearch_underlinify(tempDescription, searchCriteria);
				allMovieInfo += "<div onclick='movieSearch_showExtendedInfo("+key+")' class='movieContainer' id='movieContainer"+key+"'>";
				allMovieInfo += "	<div class='movieImage'><img class='cover' src='"+unescape(media[key]['cover'])+"' width='35' height='50' /></div>";
				allMovieInfo += "		<div class='rightContainer'>";
				allMovieInfo += "		<div class='movieTitle' id='movieTitle"+msrc+"'>"+utf8_decode(tempTitle)+"</div>";
				allMovieInfo += "		<div class='clearer'></div>";
				allMovieInfo += "		<div class='movieDescription'>"+utf8_decode(tempDescription)+"</div>";
				allMovieInfo += "	</div>";
				allMovieInfo += "</div>";
			}
		}
		allMovieInfo += "<input id='msrc' type='hidden' value='"+msrc+"'>";
		if(msrc==0) {
			allMovieInfo = "S&oslash;ket ga ingen resultater.";
		}
		if(msrc==1) {
			movieSearch_showExtendedInfo(lastKey);
			allMovieInfo = "<input id='msrc' type='hidden' value='"+msrc+"'>";
			$("#" + targetId).html(allMovieInfo);
		}else{
			$("#" + targetId).fadeOut("fast", function() {
				$("#" + targetId).html(allMovieInfo).fadeIn("fast");
			});	
		}
		searchCriteriaField.select();
	}else{
		allMovieInfo = "S&oslash;kekriteriet m&aring; minst v&aelig;re 2 bokstaver!";
		$("#" + targetId).html(allMovieInfo).fadeIn("fast");
		searchCriteriaField.select();
	}
}

var selectedMovieInfo = -1;
function movieSearch_showExtendedInfo(mediaId){
	$("#movieContainer"+selectedMovieInfo).removeClass("movieContainerSelected").addClass("movieContainerVisited");
	
	$("#movieContainer"+mediaId).addClass("movieContainerSelected");
	selectedMovieInfo = mediaId;
	var ajaxLoaderSrc = "http://content01.getlive.no/film_og_tv/get_filmleie/tv/filmsearch/images/loaders/whiteBlack16x16.gif";
	var ajaxLoaderHtml = "<img class='ajaxLoader' src='" + ajaxLoaderSrc + "' />";
	var ajaxLoaderErrorHtml = "Serverfeil!";
	$("#extendedInfo").html(ajaxLoaderHtml);
	movieSearch_switchDisplays("info");
	var searchCriteria = document.getElementById("searchCriteria").value;
	if(unescape(media[mediaId]['title'])){
		var tempTitle = utf8_decode(unescape(media[mediaId]['title']));
	}else{
		var tempTitle = "";
	}
	var imageList = media[mediaId]['images'];
	var cover = media[mediaId]['cover'];
	
	if(document.getElementById("msrc")){
		var msrc = document.getElementById("msrc").value;
	}else{
		var msrc = 1;
	}
	var info = utf8_decode(unescape(media[mediaId]['description']));
	
	var trailerLink = false;
	if(media[mediaId]['trailer']){
		trailerLink = unescape(media[mediaId]['trailer']);
	}

	var ageLimit = false;
	if(unescape(media[mediaId]['ageLimit'])){
		ageLimit = unescape(media[mediaId]['ageLimit'])
	}
	var price = false;
	if(media[mediaId]['price']){
		price = unescape(media[mediaId]['price']);
	}
	if(media[mediaId]['duration']){
		var length = Number(unescape(media[mediaId]['duration']));
		var tempLength = length;
		var hourCounter = 0;
		while(tempLength>60){
			tempLength-=60;
			hourCounter++;
		}
		if(hourCounter<=0){
			length = tempLength+"min";
		}else{
			length = hourCounter+"t "+tempLength+"min";
		}
		
	}else{
		var length = false;
	}
	
	if(media[mediaId]['category']){
		var category = "";
		for(i = 0;i<media[mediaId]['category'].length;i++){
			if(category!="") category += ", ";
			category += utf8_decode(unescape(media[mediaId]['category'][i]));
		}
	}else{
		var category = false;
	}
	
	if(media[mediaId]['cast']){
		var cast = "";
		for(i=0;i<media[mediaId]['cast']['castCategory'].length;i++){
			var categoryName = utf8_decode(unescape(media[mediaId]['cast']['castCategory'][i]));
			var name = utf8_decode(unescape(media[mediaId]['cast']['castPeople'][i]));
			cast += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"+categoryName+": <strong>"+name+"</strong><br />";
		}
	}else{
		var cast = false;
	}
	
	var imageHtml = "";
	var inageMenuHtml = "";
	var totalImageWidth = imageList.length*526;
	for(i=0;i<imageList.length;i++){
		var aStart = "";
		var aEnd = "";
		if(imageList.length>1){
			aStart = "<a onclick='movieSearch_nextImage("+i+", "+(imageList.length-1)+")'>";
			aEnd = "</a>";
		}
		var imgClass = "";
		if(i!=0) imgClass="hidden"; 
		imageHtml += aStart+"<img id='img"+i+"' class='"+imgClass+"' src='"+imageList[i]+"' width='526' />"+aEnd;
		if(imageList.length>1) inageMenuHtml += "&nbsp;<a id='imgLink"+i+"' class='indexUnselected' onclick=\"movieSearch_animImage("+i+", this)\"><span>&nbsp;"+(i+1)+"&nbsp;</span></a>&nbsp;";
	}
	var html = "<div id='title'></div>";
	if(msrc>1) html += "<div id='backlink' onclick=\"movieSearch_switchDisplays('search')\">Tilbake til resultat</div>";
	html += "<div class='clearer'></div>";
	html += "<div id='coverholder'>";
	if(cover) html += "<img src='"+cover+"' width='131' height='190' />"; else html += "&nbsp;&nbsp;Ikke tilgjengelig!";
	html += "</div>";
	html += "<div id='infoscroller'>";
	html += "<div id='infoholder'>";
	html += "<h1>"+tempTitle+"</h1>";
	html += info+"<br />";
	if(trailerLink) html += "<a href='"+trailerLink+"' target='_blank'>Se trailer</a><br />";
	if(ageLimit) html += "Aldersgrense: <strong>"+ageLimit+" &aring;r</strong><br />";
	if(price) html += "Pris: <strong>"+price+",-</strong><br />";
	if(length) html += "Lengde: <strong>"+length+"</strong><br />";
	if(category) html += "Kategori: <strong>"+category+"</strong><br />";
	if(cast) html += "Skuespillere: <br />"+cast+"<br />";
	html += "</div>";
	html += "</div>";
	html += "<div class='clearer'></div>";
	html += "<div class='clearer dotted2'></div>";
	html += "<div id='imageholder'>";
	if(imageHtml!=""){
		html += imageHtml; 
	}else{ 
		html += "&nbsp;&nbsp;Ikke tilgjengelig!";
	}
	html += "</div>";
	html += "<div class='clearer'></div>";
	html += "<div id='imagemenu'>"+inageMenuHtml+"</div>";
	
	$("#extendedInfo").fadeOut("fast", function() {
		$("#extendedInfo").html(html).fadeIn("fast", function(){
			$(".hidden").hide();
			movieSearch_animImage(0);
		});
	});
}
var selectedImgNr = -1;
function movieSearch_animImage(imgNr){
	if(imgNr!=selectedImgNr){
		$("#img"+selectedImgNr).fadeOut("fast", function(){
			$("#img"+imgNr).fadeIn("slow");	
		});										  
		$(".indexUnselected").removeClass("indexSelected");
		$("#imgLink"+imgNr).addClass("indexSelected");
		selectedImgNr = imgNr;
	}
}
function movieSearch_nextImage(currentImage, totalImages){
	var nextImage = currentImage+1;
	if(nextImage>totalImages) nextImage = 0;
	movieSearch_animImage(nextImage);
}

function genMovieSearchCode(mediaId, searchString){
	var html = "";
	html += "<div id='movieSearchOuter'>";
	html += "<div id='searchFieldContainer'>";
	html += "	<div id='searchHeader'><img src='http://content01.getlive.no/film_og_tv/get_filmleie/tv/filmsearch/images/moviesearch/searchboxtext.jpg' border='0' width='152' height='22'></div>";
	html += "	<div id='searchInput'><input type='text' class='searchCriteria' id='searchCriteria' onkeydown='movieSearch_enterAsSubmit(event)' /></div>";
	html += "	<div id='searchButton'><img src='http://content01.getlive.no/film_og_tv/get_filmleie/tv/filmsearch/images/moviesearch/search.jpg' border='0' width='79' height='22'></div>";
	html += "</div>";
	html += "<div class='clearer'></div>";
	html += "<div id='searchResultContainer'></div>";
	html += "<div id='extendedInfo'></div>";
	html += "</div>";
	
	movieSearch_tb_show("<img src='http://content01.getlive.no/film_og_tv/get_filmleie/tv/filmsearch/images/moviesearch/title.jpg' border='0' width='59' height='16'>", html);
	
	$(document).ready(function(){	
		$("#searchButton").bind("click",movieSearch_doSearch);
		if(document.getElementById("searchCriteria")) document.getElementById("searchCriteria").select();
		if(mediaId){
			movieSearch_showExtendedInfo(mediaId);
		}else if(searchString){
			document.getElementById("searchCriteria").value = searchString;
			movieSearch_doSearch();
		}
		//$('#TB_window').ifixpng();
	});
}
function movieSearch_tb_show(caption, html, imageGroup) {//function called when the user clicks on a thickbox link
	var ContentW = 550+20;
	var ContentH = 646+28;
	var pagesize = tb_getPageSize();
	var x = pagesize[0] - 150;
	var y = pagesize[1] - 150;
	if (typeof document.body.style.maxHeight === "undefined") {//if IE 6
		$("body","html").css({height: "100%", width: "100%"});
		$("html").css("overflow","hidden");
		if (document.getElementById("TB_HideSelect") === null) {//iframe to hide select elements in ie6
			$("body").append("<iframe id='TB_HideSelect'></iframe><div id='TB_overlay'></div><div id='TB_window'></div>");
			$("#TB_overlay").click(tb_remove);
		}
	}else{
		//all others
		if(document.getElementById("TB_overlay") === null){
			$("body").append("<div id='TB_overlay'></div><div id='TB_window'></div>");
			$("#TB_overlay").click(tb_remove);
		}
	}
	if(tb_detectMacXFF()){
		$("#TB_overlay").addClass("TB_overlayMacFFBGHack");//use png overlay so hide flash
	}else{
		$("#TB_overlay").addClass("TB_overlayBG");//use background and opacity
	}
	
	$("#TB_window").css({marginLeft: '-' + parseInt((ContentW / 2),10) + 'px', width: ContentW + 'px'});
	if ( !(jQuery.browser.msie && jQuery.browser.version < 7)) { // take away IE6
		$("#TB_window").css({marginTop: '-' + parseInt((ContentH / 2),10) + 'px'});
	}
	if (typeof document.body.style.maxHeight === "undefined") {//if IE 6
		$("body","html").css({height: "100%", width: "100%"});
		$("html").css("overflow","hidden");
		if (document.getElementById("TB_HideSelect") === null) {//iframe to hide select elements in ie6
			$("body").append("<iframe id='TB_HideSelect'></iframe><div id='TB_overlay'></div><div id='TB_window'></div>");
			$("#TB_overlay").click(tb_remove);
		}
	}else{//all others
		if(document.getElementById("TB_overlay") === null){
			$("body").append("<div id='TB_overlay'></div><div id='TB_window'></div>");
			$("#TB_overlay").click(tb_remove);
		}
	}
	$("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton' title='Lukk'><img src='http://content01.getlive.no/film_og_tv/get_filmleie/tv/filmsearch/images/moviesearch/close.jpg' border='0' width='16' height='16'></a></div></div><div id='TB_ajaxContent' style='width:"+ContentW+"px;height:"+ContentH+"px'>"+html+"</div>");
	$("#TB_closeWindowButton").click(tb_remove);
	$("#TB_window").css("display", "block");
	document.onkeyup = function(e){ 	
		if (e == null) { // ie
			keycode = event.keyCode;
		} else { // mozilla
			keycode = e.which;
		}
		if(keycode == 27){ // close
			tb_remove();
		}	
	};	
}