// JavaScript Document

var MAX_DUMP_DEPTH = 10;

// show changed in player
var listener_showchg = function(ev){ player_show_changed(ev); };

// channel changed in player
var listener_chnchg = function(ev){ player_channel_changed(ev); };

var c;

var kyteBadge;

var mediaURI = (typeof(media_uri) == "undefined") ? null : media_uri;
var liveChannel = (typeof(live_channel) == "undefined") ? null : live_channel;
var postShowAction = (typeof(post_show_action) == "undefined") ? null : post_show_action;
var liveShowText = (typeof(live_show_text) == "undefined") ? null : live_show_text;
var wmode = (typeof(wmode) == "undefined") ? 'opaque' : wmode; // 

function updateAd(src,href) {
	document.getElementById("adLink").href = unescape(href);
	document.getElementById("adImg").src = src;
}
		
function onAdCompanions(event) {
	try {
		c = event.data.companions[0];
	if(c.URL1==undefined) 
	{
		if ( std_img_url && std_click_url ) {
			updateAd(std_img_url+default_advertiser,std_click_url+default_advertiser);
		}
	}
	else
	{
		updateAd(c.URL,c.ClickURL);
	}
	}
	catch (err) {
	//	updateAd(std_img_url+default_advertiser,std_click_url+default_advertiser);
	}

}

function player_show_changed(event) {
	var ad_tags = event.data.tags;
	if((ad_tags == undefined) || ( ad_tags.length == 0) || (ad_tags == 'NULL')) {
		// default advertiser
		ad_tags = default_advertiser;
	}

	if ( std_img_url && std_click_url ) {
		img_url = std_img_url + ad_tags;
		click_url = std_click_url + ad_tags;

		updateAd(img_url,click_url);
	}

	if ( is_search == false ) {
		var uri = event.data.uri;
		channel_set = uri.split("/");
		if ( channel_array[channel_set[1]] ) {
			MM_turn_tab_on(channel_array[channel_set[1]]);
		}
		else {
			// show not in channel list, switch to default channel
			MM_turn_tab_on(channel_array[tab1]);
        	}
	}
}

function player_show_end(event) {
	var ad_tags = event.data.tags;
	if((ad_tags == undefined) || ( ad_tags.length == 0) || (ad_tags == 'NULL')) {
		// default advertiser
		ad_tags = default_advertiser;
	}

	img_url = std_img_url + ad_tags;
	click_url = std_click_url + ad_tags;

	updateAd(img_url,click_url);
}

function player_load(uri) {
	kyteplayer = new Kyte.Player(uri, {p: player_id, width: 480, height: 475, preShowAction: preShowAction, postShowAction: postShowAction, channelLogoMediaUri: mediaURI, wmode: wmode }, "player");

	kyteplayer.addEventListener("Navigation.ShowFinished", player_show_end);
	kyteplayer.addEventListener("Navigation.ShowChanged", listener_showchg);
	kyteplayer.addEventListener("Navigation.ChannelChanged", listener_chnchg);
	kyteplayer.addEventListener('Advert.Companions', onAdCompanions);
	//kyteplayer.addEventListener("Navigation.ShowStarted", onShowStart);

	//show_play(uri);
}

function badge_load(uri,channelId,badgeId) {
	badgeCreate_home(uri,channelId,badgeId);
}

function badge_load_live(uri,channelId,badgeId) {
	badgeCreate_live(uri,channelId,badgeId);
}


function player_channel_changed(event) {
	var uri = event.data.uri;

	// only refresh badge if show is not from a search result
	if ( is_badge_loaded == false) {
		if (uri == "channels/"+accountId) {
			badgeCreate(tab1,accountId);
		} else {
			channel_set = uri.split("/");
			badgeCreate(channel_set[1],'');	
		}
		is_badge_loaded = true;
	}
	//show_play(uri);
}


function badgeCreate(channelId, accountId) {

var kyteBadge;

        kyteBadge = new KyteBadge(channelId, accountId, { ratingImgDeact: player_images_path + "starinactive.png", ratingImgAct: player_images_path + "staractive.png", cssClass:"customBadge", nextPageDeact: player_images_path + "rightarrow_dis.png", nextPageAct: player_images_path + "rightarrow.png", prevPageDeact: player_images_path + "leftarrow_dis.png", prevPageAct: player_images_path + "leftarrow.png", metaDescriptionLength: kp_full_metaDescriptionLength, metaTitleLength: kp_full_metaTitleLength, headerHeight: kp_full_headerHeight, metaHeight: kp_full_metaHeight, metaWidth: kp_full_metaWidth, thumbHeight: kp_full_thumbHeight, thumbWidth: kp_full_thumbWidth, metaRating: kp_full_metaRating, metaViews: kp_full_metaViews, metaDuration: kp_full_metaDuration, metaDescription: kp_full_metaDescription, stampFormat: kp_full_stampFormat, metaTime: kp_full_metaTime, metaTitle: kp_full_metaTitle, filterSearch: kp_full_filterSearch, filterBestRated: kp_full_filterBestRated, filterMostWatched: kp_full_filterMostWatched, filterJustProduced: kp_full_filterJustProduced, relatedKytePlayer: kp_full_relatedKytePlayer, pagingControl: kp_full_pagingControl, showsPerPage: kp_full_showsPerPage, layout: kp_full_layout, kyteServer: kp_full_kyteServer, liveChannel: liveChannel, liveShowText: liveShowText, ak: ak, akp: akp }, 'itsThaBadge');


}

function badgeCreate_home(channelId, accountId, badgeId) {

var kyteBadge;
badgeId = (typeof(badgeId) == "undefined") ? 'itsThaBadge' : badgeId;

        kyteBadge = new KyteBadge(channelId, accountId, { cssClass:"customBadgeHome", metaDescriptionLength: kp_home_metaDescriptionLength, metaTitleLength: kp_home_metaTitleLength, headerHeight: kp_home_headerHeight, metaHeight: kp_home_metaHeight, metaWidth: kp_home_metaWidth, thumbHeight: kp_home_thumbHeight, thumbWidth: kp_home_thumbWidth, metaRating: kp_home_metaRating, metaViews: kp_home_metaViews, metaDuration: kp_home_metaDuration, metaDescription: kp_home_metaDescription, stampFormat: kp_home_stampFormat, metaTime: kp_home_metaTime, metaTitle: kp_home_metaTitle, filterBestRated: kp_home_filterBestRated, filterMostWatched: kp_home_filterMostWatched, filterJustProduced: kp_home_filterJustProduced, relatedKytePlayer: kp_home_relatedKytePlayer, onClickThumb: kp_home_onClickThumb, showsPerRow: kp_home_showsPerRow, rowsPerPage: kp_home_rowsPerPage, pagingControl: kp_home_pagingControl, showsPerPage: kp_home_showsPerPage, layout: kp_home_layout, kyteServer: kp_home_kyteServer, liveChannel: liveChannel, liveShowText: liveShowText, ak: ak, akp: akp }, badgeId);


}

function badgeCreate_live(channelId, accountId, badgeId) {

var kyteBadge;
badgeId = (typeof(badgeId) == "undefined") ? 'itsThaBadge' : badgeId;
var liveShowBanner = "/images/common/player_images/live_alert.gif";

        kyteBadge = new KyteBadge(channelId, accountId, { liveShowBanner: liveShowBanner, ak: ak, akp: akp }, badgeId);


}


function show_play(uri) {

	// Make sure we are on the right tab
	channel_set = uri.split("/");
	if ( channel_array[channel_set[1]] ) {
	//	MM_turn_tab_on(channel_array[channel_set[1]]);
		kyteplayer.setURI(uri);
	}
	else {
		// show not in channel list, switch to default channel
		MM_turn_tab_on(channel_array[tab1]);
		badgeCreate(tab1,'');
		kyteplayer.setURI(init_uri);
	}

}

function show_play_all(uri,accountId) {
	// Call setURI
        kyteplayer.setURI(uri);

}

function MM_turn_tabs_off() {

	MM_changeProp('link1','','style.color',kp_color_tab_off,'SPAN');
	MM_changeProp('link2','','style.color',kp_color_tab_off,'SPAN');
	MM_changeProp('link3','','style.color',kp_color_tab_off,'SPAN');
	MM_swapImage('tableft1','',player_images_path+'tab_left_gray.png',1);
	MM_swapImage('tabright1','',player_images_path+'tab_right_gray.png',1);
	MM_swapImage('tableft2','',player_images_path+'tab_left_gray.png',1);
	MM_swapImage('tabright2','',player_images_path+'tab_right_gray.png',1);
	MM_swapImage('tableft3','',player_images_path+'tab_left_gray.png',1);
	MM_swapImage('tabright3','',player_images_path+'tab_right_gray.png',1);
	MM_changeProp('nav1','','style.backgroundImage','url('+player_images_path+'tab_center_gray.png)','DIV');
	MM_changeProp('nav2','','style.backgroundImage','url('+player_images_path+'tab_center_gray.png)','DIV');
	MM_changeProp('nav3','','style.backgroundImage','url('+player_images_path+'tab_center_gray.png)','DIV');
	MM_changeProp('nav4','','style.backgroundImage','url('+player_images_path+'tab_center_gray.png)','DIV');
	MM_swapImage('tableft4','',player_images_path+'tab_left_gray.png',1);
	MM_swapImage('tabright4','',player_images_path+'tab_right_gray.png',1);

	is_search = true;

}

function MM_turn_tab_on(tabnumber) {

	for (i = 1; i<= channel_count; i++ ) {
		link_val = "link" + i;

		try {
			eval("document.getElementById(\""+link_val+"\").firstChild.nodeValue = title_array[i]");
		}
		catch (e) {
		}

		if ( i == tabnumber ) {
			MM_changeProp('link'+i,'','style.color',kp_color_tab_on,'SPAN');
			MM_swapImage('tableft'+i,'',player_images_path+'tab_left.png',1);
			MM_swapImage('tabright'+i,'',player_images_path+'tab_right.png',1);
			MM_changeProp('nav'+i,'','style.backgroundImage','url('+player_images_path+'tab_center.png)','DIV');
		}
		else {
			MM_changeProp('link'+i,'','style.color',kp_color_tab_off,'SPAN');
			MM_swapImage('tableft'+i,'',player_images_path+'tab_left_gray.png',1);
			MM_swapImage('tabright'+i,'',player_images_path+'tab_right_gray.png',1);
			MM_changeProp('nav'+i,'','style.backgroundImage','url('+player_images_path+'tab_center_gray.png)','DIV');
		}
	}

}

function MM_convertTime(milliseconds) {

	var Time = "";

	if (!(milliseconds == undefined) && ( milliseconds > 0)) {
		Hours = Math.floor(milliseconds / (1000*60*60));
		Minutes = Math.floor((milliseconds % (1000*60*60)) / (1000*60));
		Seconds = Math.floor(((milliseconds % (1000*60*60)) % (1000*60)) / 1000);

		if (!(Hours == undefined) && ( Hours > 0)) {
			Time = Hours + ":";
		}
		if (!(Minutes == undefined) && ( Minutes >= 0)) {
			Time += Minutes + ":";
		}
		if (!(Seconds == undefined) && ( Minutes >= 0)) {
			if ( Seconds < 10 ) {
				Time += "0";
			}
			Time += Seconds;
		}
		return Time;
	}
	else {
		return "00:00";
	}
}

function MM_displayStatusMsg(msgStr) { //v1.0
	status=msgStr;
	document.MM_returnValue = true;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_changeProp(objName,x,theProp,theValue) { //v6.0
  var obj = MM_findObj(objName);
  if (obj && (theProp.indexOf("style.")==-1 || obj.style)){
    if (theValue == true || theValue == false)
      eval("obj."+theProp+"="+theValue);
    else eval("obj."+theProp+"='"+theValue+"'");
  }
}

// Add the three functions below

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function dumpObj(obj, name, indent, depth) {

              if (depth > MAX_DUMP_DEPTH) {

                     return indent + name + ": <Maximum Depth Reached>\n";

              }

              if (typeof obj == "object") {

                     var child = null;

                     var output = indent + name + "\n";

                     indent += "\t";

                     for (var item in obj)

                     {

                           try {

                                  child = obj[item];

                           } catch (e) {

                                  child = "<Unable to Evaluate>";

                           }

                           if (typeof child == "object") {

                                  output += dumpObj(child, item, indent, depth + 1);

                           } else {

                                  output += indent + item + ": " + child + "\n";

                           }

                     }

                     return output;

              } else {

                     return obj;

              }

}

function set_cookie ( name, value, exp_y, exp_m, exp_d, path, domain, secure )
{
  var cookie_string = name + "=" + escape ( value );

  if ( exp_y )
  {
    var expires = new Date ( exp_y, exp_m, exp_d );
    cookie_string += "; expires=" + expires.toGMTString();
  }

  if ( path )
        cookie_string += "; path=" + escape ( path );

  if ( domain )
        cookie_string += "; domain=" + escape ( domain );
  
  if ( secure )
        cookie_string += "; secure";
  
  document.cookie = cookie_string;
}

function delete_cookie ( cookie_name )
{
  var cookie_date = new Date ( );  // current date & time
  cookie_date.setTime ( cookie_date.getTime() - 1 );
  document.cookie = cookie_name += "=; expires=" + cookie_date.toGMTString();
}

function get_cookie ( cookie_name )
{
  var results = document.cookie.match ( '(^|;) ?' + cookie_name + '=([^;]*)(;|$)' );

  if ( results )
    return ( unescape ( results[2] ) );
  else
    return null;
}

function gup( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}

function dumpObj(obj, name, indent, depth) {

              if (depth > MAX_DUMP_DEPTH) {

                     return indent + name + ": <Maximum Depth Reached>\n";

              }

              if (typeof obj == "object") {

                     var child = null;

                     var output = indent + name + "\n";

                     indent += "\t";

                     for (var item in obj)

                     {

                           try {

                                  child = obj[item];

                           } catch (e) {

                                  child = "<Unable to Evaluate>";

                           }

                           if (typeof child == "object") {

                                  output += dumpObj(child, item, indent, depth + 1);

                           } else {

                                  output += indent + item + ": " + child + "\n";

                           }

                     }

                     return output;

              } else {

                     return obj;

              }

}



