/******************************************************
 * Title: 
 * Author: Ron Derksen
 * Date: 
 * Dependencies: 
 * Description: 
 * 
 * 
 * New version 26 november 2007, added 13 new channels
 * Pernilla Helder
 * 
 * 
 * 
 * 
 *****************************************************/

var channels = ['SF 1','SF zwei','RTL CH','ORF eins','Pro 7 (CH) ','VOX CH','DMAX', 'MTV CH', 'ZDF neo','arte DE','TSR 1','M 6','TSI 1','ITV 1','ATV-A','N24','Canale5 ', 'Tele Zueri', 'SF Info', 'Nickelodeon D', 'SPORT1'];
 
function addStripes(className) {
	var elements = document.getElementsByClassName(className);
	for ( var idx=0; idx < elements.length; idx++ ) {
		var classes = elements[idx].className.split(" ");
		var childElements = elements[idx].childNodes;
		var even = false;
		$A(childElements).each ( function (element) {
			if ( element.nodeType == 1) {
				if (even) {
					Element.addClassName(element, "even");
				}
				even = !even;
			}
		});
	}
}

function ajaxLoadingHandler() {
	if ( typeof(activeChannel) != "undefined") {
		if ($("ch_ltv_now_title").innerHTML == "") {
			$("ch_ltv_now_title").innerHTML = "Daten werden geladen...";
		}
	} else {
		$A(channels).each( function (channel) {
			if ($(channel.replace(/[ ()]/g, "_") + "_now") != null) {			
				if ($(channel.replace(/[ ()]/g, "_") + "_now").innerHTML == "") {
					$(channel.replace(/[ ()]/g, "_") + "_now").innerHTML = "Daten werden geladen...";
				}
			}
		})
	}		
}

function ajaxFailureHandler() {
	if ( typeof(activeChannel) != "undefined") {
		$("ch_ltv_now_title").innerHTML = "Daten nicht gefunden";
	} else {
		$A(channels).each( function (channel) {
			if ($(channel.replace(/[ ()]/g, "_") + "_now") != null) {			
				$(channel.replace(/[ ()]/g, "_") + "_now").innerHTML = "Daten nicht gefunden";
			}
		})
	}
}

function ajaxTimeoutHandler() {
	if ( typeof(activeChannel) != "undefined") {
		$("ch_ltv_now_title").innerHTML = "Daten nicht gefunden (Timeout)";
	} else {
		$A(channels).each( function (channel) {
			if ($(channel.replace(/[ ()]/g, "_") + "_now") != null) {			
				$(channel.replace(/[ ()]/g, "_") + "_now").innerHTML = "Daten nicht gefunden (Timeout)";
			}
		})
	}
}	

function getNowNext(channel) {		
	if (typeof channel == "string") {
		var chan = "&channels=" + channel;	
	} else {
   		var chan = "&channels=" + channels.join("&channels=");	
   	}
   	var url = '/cgi-bin/WebObjects/EPG.woa/wa/Events?country=ch' + chan + '&genre=All&timescope=Nowandnext&template=Json_eventsOverview&sort=channel&batch=2';
	req = new Ajax.Request(url, {"method":"get", "onSuccess":ajaxSuccessHandler, "onFailure": ajaxFailureHandler, "onLoading": ajaxLoadingHandler, "onTimeout": ajaxTimeoutHandler, "timeout": 5000});
}
	
function ajaxSuccessHandler(response) {
	var eventList = null;
	try {
		pageState = eval(response.responseText);
	} catch (e) {
		pageState = null;	
	}

	if (typeof(activeChannel) != "undefined") {
		if (pageState != null) {
			eventList = $A(pageState.events).findAll ( function (evt) {
				if (evt.channel[1] == activeChannel) {
					return true;
				} else {
					return false;
				}
			})

			if (eventList.length>2) {
				eventList = eventList.splice(0,2);
			}				
		}

		if (eventList == null || eventList.length == 0) {
			$("ch_ltv_now_title").innerHTML = "Daten nicht gefunden";			
		} else if (eventList[0].length != 0) {
			if (eventList[0].title != "") {
				$("ch_ltv_now_title").innerHTML = eventList[0].title.replace("&amp;", "&");
			} else {
				$("ch_ltv_now_title").innerHTML = "Daten nicht gefunden";		
			}

			$("ch_ltv_next_title").innerHTML = eventList[1].startTime + " Uhr: " + eventList[1].title.replace("&amp;", "&");
		}
		//$("ch_ltv_channel_nowandnext").style.visibility = "visible";
		setTimeout(function () {getNowNext(activeChannel)}, 300000); // 5 minutes
	} else {
		$A(channels).each( function (channel) {
			if (pageState != null) {
				
				eventList = $A(pageState.events).findAll( function (evt) {
					if (evt.channel[1] == channel.replace("_", " ")) {
						return true;
					} else {
						return false;
					}
				})

 					if (eventList.length>2) {
					eventList = eventList.splice(0,2);
				}
			}

			if (eventList == null && $(channel.replace(/[ ()]/g, "_") + "_now") != null) {
				$(channel.replace(/[ ()]/g, "_") + "_now") .innerHTML = "Daten nicht gefunden";			
			} else if (eventList.length != 0) {
				if ($(channel.replace(/[ ()]/g, "_") + "_now") != null) {		

					$(channel.replace(/[ ()]/g, "_") + "_now").innerHTML = eventList[0].title.replace("&amp;", "&");;
					
				}
				if ($(channel.replace(/[ ()]/g, "_") + "_next") != null) {
					$(channel.replace(/[ ()]/g, "_") + "_next").innerHTML = eventList[1].startTime + " Uhr: " + eventList[1].title.replace("&amp;", "&");;
				}
			} else {
				$(channel.replace(/[ ()]/g, "_") + "_now").innerHTML = "Daten nicht gefunden";
			}
		})
		setTimeout(getNowNext, 300000); // 5 minutes
	}						
}

CHELLO = window.CHELLO || {};
CHELLO.messages = CHELLO.messages || {};
CHELLO.messages.login = CHELLO.messages.login || [];

CHELLO.messages.login["WrongLogin"] = "The username/password combination seems to be invalid.";

function handlePageLoad() {
	var error = "";
	if (document.location.search != "") {
		var queryString = document.location.search.toQueryParams();
		if (queryString.MESSAGE != "") {
			error = CHELLO.messages.login[queryString.MESSAGE];
			$("error").innerHTML = error;
			$("error").setStyle({"display":"block"});	
		}
	}
}

Event.observe(window, 'load', function () {		
	addStripes('ch_striped');
	if (typeof activeChannel != "undefined") {		
		getNowNext (activeChannel);
	} else {
		getNowNext();	
	}
	var html = '';
	if ($('ch_ltv_player') != null) {
		if ( typeof channel_url != 'undefined' && typeof mediaplayer != 'undefined') {
			var mp = new mediaplayer(channel_url, 515, 392, {"uiMode":"mini"});
			html = mp.display();
			html += '<div id="ch_ltv_wmp_controls">';
			html += (document.all?'<a href="#" class="fullscreen" onclick="player=document.getElementById(\'MediaPlayer\');if(player.playState==3){player.fullScreen=true}">' + fullscreen_label + '</a>':'');
			html += '</div>';


			$('ch_ltv_player').innerHTML = html;
		}
	}
})

