Event.observe(window,"load",function () {
	
	this.channels = ['SF 1','SF zwei','RTL CH','ORF 1','Pro 7 (CH) ','VOX CH','DMAX','DSF TEMP','MTV CH','TV Gusto','ZDF dokukanal','arte DE','TSR 1','M 6','TSI 1','ITV 1','Nick/ComedyCentral','N24','Canale5 '];	
	
//channel conversion array for the now and next links 	
	this.chanUrlConv = ['SF_1','SF_2','RTL','ORF_1','PRO_7','VOX','DMAX','DSF','MTV','TV_Gusto','ZDF_dokukanal','ARTE','TSR_1','M6','TSI_1','ITV_1','NICK','N24','Canale_5'];	
	
	
	this.timescope = "Nowandnext";
	this.maxChannels = 6;
	var channelList = "&channels=" + this.channels.join("&channels=");
	var jsonUrl = "/cgi-bin/WebObjects/EPG.woa/wa/Events?country=ch{$channels}&genre=All&timescope={$timescope}&template=Json_eventsOverview&sort=channel&batch=2";
	
	
	var url = jsonUrl.mgsub([/\{\$channels\}/, /\{\$timescope\}/], [channelList, this.timescope] );
	var ajaxOptions = {method:"get", onComplete: function (response, json) {				
			json = eval(response.responseText);
			loadEpgData(channels, json);
		}.bind(this)}
		
	this.req = new Ajax.Request(url, ajaxOptions);	
	
})

function loadEpgData (channels,json) {
	var content = $("epg");
	if (json != null) {
		//Remove the loader
		Element.hide('epg-ajaxloader');
		
		var events = json.events;
		var currentChannel = '';
		var listItem = null;
		var channelLink = null;
		var channelLogo = null;
		var eventTitle = null;
		var channelCount = 0;
		var eventCount = 1;
		var list = null;
		var channelLimitReached = false;
		evtShortList = [];
		$A(this.channels).each (function (channel) {
			if (!channelLimitReached){
				var evtCnt = 0;
				evtShortList = $A(events).inject(evtShortList, function (array, evt){
					if (evtCnt == 1) {
						channelCount++;
						if ( channelCount >= maxChannels )channelLimitReached=true;
						throw $break;
					}						
					if (evt.channel[1] == decodeURI(channel)) {
						array.push(evt);
						evtCnt++;
					}
					return array
				})
			} else {
				throw $break;
			}
		})
		
		
		
		
		channelCount = 0;
		list = document.createElement("ul");
		$A(evtShortList).each ( function (evt) {
			if (currentChannel == "" || !(new RegExp(currentChannel).test(evt.channel[1]))) {
				currentChannel = evt.channel[1];
			
				listItem = document.createElement("li");
				channelCount++;
				if (channelCount == maxChannels) Element.addClassName(listItem,"end");
				channelLink = document.createElement("a");
				//channelLink.href = "http://www.hispeed.ch/Live_TV/"+evt.channel[1].replace(" ", "_");
				channelLink.href = "http://www.hispeed.ch/Live_TV/"+chanUrlConv[channelCount -1]+"/";
				channelLink.className = "channel";
				channelLink.name = "&lid=dynamic_promo_tvguide&lpos="+encodeURI(evt.channel[1]);
				channelLink.title = evt.startTime+" - "+evt.channel[1] + " : "+evt.title ;
				channelLogo = document.createElement("img");
				channelLogo.src = "http://www.hispeed.ch"+evt.channel[3].replace(/.gif/,"-44x16.gif");
				channelLogo.alt = evt.channel[1];
				channelLink.appendChild(channelLogo);
				eventTitle = document.createElement("span");
				eventTitle.innerHTML = evt.title.resize(13);
				channelLink.appendChild(eventTitle);
				listItem.appendChild(channelLink);
			}
			list.appendChild(listItem);
			
		})
		
		content.appendChild(list);
		
	}
}

String.prototype.mgsub = function (patternList, replacementList) {
	var result = this;	
	if (patternList.length <= replacementList.length) {	
		for(var idx=0;idx < patternList.length; idx++) {
			result = result.gsub(patternList[idx],replacementList[idx]);	
		}
	} else if (patternList.length > replacementList.length) {
		for(var idx=0;idx < patternList.length; idx++) {
			if (idx<replacementList.length) {
				result = result.gsub(patternList[idx],replacementList[idx]);
			} else {
				result = result.gsub(patternList[idx],replacementList[replacementList.length-1]);
			}	
		}				
	}
	return result;
}

String.prototype.resize = function(max){
	var result = this;
	var elipses = "..";
	//hack alert (get rid of amps so we don't artifially shorten lines)
	result = result.replace("&amp;","&");
	if (result.length > max) {
		result = result.substring(0,max);
		result = result.replace(/\s+$/,"");
		result = result + elipses;
	}
	//hack alert (put the amps back)
	result = result.replace("&","&amp;");
	return result;
}


