


(function(){
  
  var empSwitcher = function(xmlFiles, opts) {
  	totalVideo = xmlFiles.length;
  	var loaded = 0;
  	var currentVid = 0;
  	var isDiscover = (opts) ? ((opts.isDiscover) ? opts.isDiscover : false) : false;
  	var altText = (opts) ? ((opts.altText) ? opts.altText : null) : null;
  	var emp = new embeddedMedia.Player();
	emp.setWidth('512');
	emp.setHeight('323');
	emp.setDomId('ptyEmp');
	var videoHash = [];
	var empThumbTemplate =  '<li class="ptyEmpThumb{DM}">'+
								'<div class="ptyEmpImg"><a href="#" class="emp_{empNo}"><img src="{thumb}" width="126" height="71" alt="{thumbAlt}" /></a>'+
								'</div>'+
								'<p>{desc}</p>'+
							'</li>';
	var empDescTemplate ='<h3>{title}</h3>'+
							'<p>{desc}</p>';

	
	// check if a video has been selected using the querystring parameter 'pty_vid'
	var qs = window.location.search;
	if(qs.length > 1) {
		var keyValuePairs = qs.substring(1).split("&");
		for (var i in keyValuePairs)
		{
			var keyVal = keyValuePairs[i].split("=");
			if (keyVal[0] == 'pty_vid')
			{
				currentVid = keyVal[1] - 1;
			}
		}
	}
	
	emp.setPlaylist('http://'+document.domain+'/poetryseason/xml/'+xmlFiles[currentVid]);
	
	glow.net.get('/poetryseason/xml/'+xmlFiles[0],  {
		  onLoad: function(response) {
			var xmlNodeList = glow.dom.get( response.xml() );
			var thumbNode = xmlNodeList.get('link').filter(function() {
			  return glow.dom.get(this).attr('rel') == "thumb";
			});
			
			videoHash[0] = {title : xmlNodeList.get("title").text(), 
							desc : xmlNodeList.get("summary").text(),
							thumb : thumbNode.attr('href'),
							thumbAlt : (altText) ? altText[0] : xmlNodeList.get("title").text(),
							DM : '',
							empNo : '0'
							};
			areLoaded();
		  },
		  onError: function(response) {
			alert("Error getting file: " + response.statusText());
		  }
	});
	if(xmlFiles[1]){
		glow.net.get('/poetryseason/xml/'+xmlFiles[1],  {
			  onLoad: function(response) {
				var xmlNodeList = glow.dom.get( response.xml() );
				var thumbNode = xmlNodeList.get('link').filter(function() {
				  return glow.dom.get(this).attr('rel') == "thumb";
				});
	
				videoHash[1] = {title : xmlNodeList.get("title").text(), 
								desc : xmlNodeList.get("summary").text(),
								thumb : thumbNode.attr('href'),
								thumbAlt : (altText) ? altText[1] : xmlNodeList.get("title").text(),
								DM : '',
								empNo : '1'
								};
				areLoaded();
			  },
			  onError: function(response) {
				alert("Error getting file: " + response.statusText());
			  }
		});
	}
	if(xmlFiles[2]){
		glow.net.get('/poetryseason/xml/'+xmlFiles[2],  {
			  onLoad: function(response) {
				var xmlNodeList = glow.dom.get( response.xml() );
				var thumbNode = xmlNodeList.get('link').filter(function() {
				  return glow.dom.get(this).attr('rel') == "thumb";
				});
	
				videoHash[2] = {title : xmlNodeList.get("title").text(), 
								desc : xmlNodeList.get("summary").text(),
								thumb : thumbNode.attr('href'),
								thumbAlt : (altText) ? altText[2] : xmlNodeList.get("title").text(),
								DM : ' DM',
								empNo : '2'
								};
				areLoaded();
			  },
			  onError: function(response) {
				alert("Error getting file: " + response.statusText());
			  }
		});
	}
	if(xmlFiles[3]){
		glow.net.get('/poetryseason/xml/'+xmlFiles[3],  {
			  onLoad: function(response) {
				var xmlNodeList = glow.dom.get( response.xml() );
				var thumbNode = xmlNodeList.get('link').filter(function() {
				  return glow.dom.get(this).attr('rel') == "thumb";
				});
	
				videoHash[3] = {title : xmlNodeList.get("title").text(), 
								desc : xmlNodeList.get("summary").text(),
								thumb : thumbNode.attr('href'),
								thumbAlt : (altText) ? altText[3] : xmlNodeList.get("title").text(),
								DM : '',
								empNo : '3'
								};
				areLoaded();
			  },
			  onError: function(response) {
				alert("Error getting file: " + response.statusText());
			  }
		});
	}
	if(xmlFiles[4]){
		glow.net.get('/poetryseason/xml/'+xmlFiles[4],  {
			  onLoad: function(response) {
				var xmlNodeList = glow.dom.get( response.xml() );
				var thumbNode = xmlNodeList.get('link').filter(function() {
				  return glow.dom.get(this).attr('rel') == "thumb";
				});
	
				videoHash[4] = {title : xmlNodeList.get("title").text(), 
								desc : xmlNodeList.get("summary").text(),
								thumb : thumbNode.attr('href'),
								thumbAlt : (altText) ? altText[4] : xmlNodeList.get("title").text(),
								DM : '',
								empNo : '4'
								};
				areLoaded();
			  },
			  onError: function(response) {
				alert("Error getting file: " + response.statusText());
			  }
		});
	}
	if(xmlFiles[5]){
		glow.net.get('/poetryseason/xml/'+xmlFiles[5],  {
			  onLoad: function(response) {
				var xmlNodeList = glow.dom.get( response.xml() );
				var thumbNode = xmlNodeList.get('link').filter(function() {
				  return glow.dom.get(this).attr('rel') == "thumb";
				});
	
				videoHash[5] = {title : xmlNodeList.get("title").text(), 
								desc : xmlNodeList.get("summary").text(),
								thumb : thumbNode.attr('href'),
								thumbAlt : (altText) ? altText[5] : xmlNodeList.get("title").text(),
								DM : '',
								empNo : '5'
								};
				areLoaded();
			  },
			  onError: function(response) {
				alert("Error getting file: " + response.statusText());
			  }
		});
	}
	if(xmlFiles[6]){
		glow.net.get('/poetryseason/xml/'+xmlFiles[6],  {
			  onLoad: function(response) {
				var xmlNodeList = glow.dom.get( response.xml() );
				var thumbNode = xmlNodeList.get('link').filter(function() {
				  return glow.dom.get(this).attr('rel') == "thumb";
				});
	
				videoHash[6] = {title : xmlNodeList.get("title").text(), 
								desc : xmlNodeList.get("summary").text(),
								thumb : thumbNode.attr('href'),
								thumbAlt : (altText) ? altText[6] : xmlNodeList.get("title").text(),
								DM : '',
								empNo : '6'
								};
				areLoaded();
			  },
			  onError: function(response) {
				alert("Error getting file: " + response.statusText());
			  }
		});
	}
	if(xmlFiles[7]){
		glow.net.get('/poetryseason/xml/'+xmlFiles[7],  {
			  onLoad: function(response) {
				var xmlNodeList = glow.dom.get( response.xml() );
				var thumbNode = xmlNodeList.get('link').filter(function() {
				  return glow.dom.get(this).attr('rel') == "thumb";
				});
	
				videoHash[7] = {title : xmlNodeList.get("title").text(), 
								desc : xmlNodeList.get("summary").text(),
								thumb : thumbNode.attr('href'),
								thumbAlt : (altText) ? altText[7] : xmlNodeList.get("title").text(),
								DM : '',
								empNo : '7'
								};
				areLoaded();
			  },
			  onError: function(response) {
				alert("Error getting file: " + response.statusText());
			  }
		});
	}
	if(xmlFiles[8]){
		glow.net.get('/poetryseason/xml/'+xmlFiles[8],  {
			  onLoad: function(response) {
				var xmlNodeList = glow.dom.get( response.xml() );
				var thumbNode = xmlNodeList.get('link').filter(function() {
				  return glow.dom.get(this).attr('rel') == "thumb";
				});
	
				videoHash[8] = {title : xmlNodeList.get("title").text(), 
								desc : xmlNodeList.get("summary").text(),
								thumb : thumbNode.attr('href'),
								thumbAlt : (altText) ? altText[8] : xmlNodeList.get("title").text(),
								DM : '',
								empNo : '8'
								};
				areLoaded();
			  },
			  onError: function(response) {
				alert("Error getting file: " + response.statusText());
			  }
		});
	}
	if(xmlFiles[9]){
		glow.net.get('/poetryseason/xml/'+xmlFiles[9],  {
			  onLoad: function(response) {
				var xmlNodeList = glow.dom.get( response.xml() );
				var thumbNode = xmlNodeList.get('link').filter(function() {
				  return glow.dom.get(this).attr('rel') == "thumb";
				});
	
				videoHash[9] = {title : xmlNodeList.get("title").text(), 
								desc : xmlNodeList.get("summary").text(),
								thumb : thumbNode.attr('href'),
								thumbAlt : (altText) ? altText[9] : xmlNodeList.get("title").text(),
								DM : '',
								empNo : '9'
								};
				areLoaded();
			  },
			  onError: function(response) {
				alert("Error getting file: " + response.statusText());
			  }
		});
	}
	if(xmlFiles[10]){
		glow.net.get('/poetryseason/xml/'+xmlFiles[10],  {
			  onLoad: function(response) {
				var xmlNodeList = glow.dom.get( response.xml() );
				var thumbNode = xmlNodeList.get('link').filter(function() {
				  return glow.dom.get(this).attr('rel') == "thumb";
				});
	
				videoHash[10] = {title : xmlNodeList.get("title").text(), 
								desc : xmlNodeList.get("summary").text(),
								thumb : thumbNode.attr('href'),
								thumbAlt : (altText) ? altText[10] : xmlNodeList.get("title").text(),
								DM : '',
								empNo : '10'
								};
				areLoaded();
			  },
			  onError: function(response) {
				alert("Error getting file: " + response.statusText());
			  }
		});
	}
	if(xmlFiles[11]){
		glow.net.get('/poetryseason/xml/'+xmlFiles[11],  {
			  onLoad: function(response) {
				var xmlNodeList = glow.dom.get( response.xml() );
				var thumbNode = xmlNodeList.get('link').filter(function() {
				  return glow.dom.get(this).attr('rel') == "thumb";
				});
	
				videoHash[11] = {title : xmlNodeList.get("title").text(), 
								desc : xmlNodeList.get("summary").text(),
								thumb : thumbNode.attr('href'),
								thumbAlt : (altText) ? altText[11] : xmlNodeList.get("title").text(),
								DM : '',
								empNo : '11'
								};
				areLoaded();
			  },
			  onError: function(response) {
				alert("Error getting file: " + response.statusText());
			  }
		});
	}
	if(xmlFiles[12]){
		glow.net.get('/poetryseason/xml/'+xmlFiles[12],  {
			  onLoad: function(response) {
				var xmlNodeList = glow.dom.get( response.xml() );
				var thumbNode = xmlNodeList.get('link').filter(function() {
				  return glow.dom.get(this).attr('rel') == "thumb";
				});
	
				videoHash[12] = {title : xmlNodeList.get("title").text(), 
								desc : xmlNodeList.get("summary").text(),
								thumb : thumbNode.attr('href'),
								thumbAlt : (altText) ? altText[12] : xmlNodeList.get("title").text(),
								DM : '',
								empNo : '12'
								};
				areLoaded();
			  },
			  onError: function(response) {
				alert("Error getting file: " + response.statusText());
			  }
		});
	}
	var areLoaded = function(){
		loaded++;
		if(loaded == totalVideo){
			xmlLoaded();	
		}
		return;
	};
	var xmlLoaded = function(){
		// set title and description
		glow.dom.get('.ptyEmpDesc').html(glow.lang.interpolate(empDescTemplate, {
			title : videoHash[currentVid].title,
			desc : videoHash[currentVid].desc
		}));
		emp.write();
		addThumbs();
	};
	var addThumbs = function(){
		if(isDiscover){
			bindThumbs();
			return;
		}
		var thumbHTML = '<ul id="carousel" class="ptyEmpThumbs clearfix">';
		for( var i = 0; i < totalVideo; i++){
		thumbHTML += glow.lang.interpolate(empThumbTemplate, {
			thumb : videoHash[i].thumb,
			thumbAlt : videoHash[i].thumbAlt,
			desc : videoHash[i].title,
			DM : videoHash[i].DM,
			empNo : videoHash[i].empNo
		});
		}
		thumbHTML += '</ul>';
		glow.dom.get('.ptyEmpDesc').after(thumbHTML);
		if(totalVideo > 3){
			glow.dom.get('.ptyEmpThumb').removeClass('DM');
			
			
			equaliseHeight('.ptyEmpThumb');
			glow.dom.get('#carousel').removeClass('clearfix');
			var carousel = new glow.widgets.Carousel("#carousel");
		}
		bindThumbs();
		return;
	};
	var equaliseHeight = function(elemsToEqualise){
		var maxHeight = 0,
			elemHeight,
			elems = glow.dom.get(elemsToEqualise);
		elems.each(function(i){
			elemHeight = glow.dom.get(this).height();
			if(elemHeight > maxHeight){
				maxHeight = elemHeight;
			}
			if(i == totalVideo - 1){
				glow.dom.get(this).addClass('DM');
			}
		});
		//glow.dom.get('.ptyEmpThumbs').css('width' , glow.dom.get('.ptyEmpThumbs').width()+'px');
		//alert(maxHeight);
		elems.height(maxHeight);
	};
	var bindThumbs = function(){
		if(isDiscover){
			glow.events.addListener('.ptyEmpThumb a', 'click', function(){
			var empNo = this.className.substr(4);
			emp.setPlaylist(this.href);
			emp.write();
			glow.dom.get('.ptyEmpDesc').html(glow.lang.interpolate(empDescTemplate, {
				title : videoHash[empNo].title,
				desc : videoHash[empNo].desc
			}));
			return false;
			});
		}
		else{
			glow.events.addListener('.ptyEmpThumb a', 'click', function(){
				var empNo = this.className.substr(4);
				emp.setPlaylist('http://'+document.domain+'/poetryseason/xml/'+xmlFiles[empNo]);
				emp.write();
				glow.dom.get('.ptyEmpDesc').html(glow.lang.interpolate(empDescTemplate, {
					title : videoHash[empNo].title,
					desc : videoHash[empNo].desc
				}));
				return false;
			});
		}
		return;
	};
  };
  window.empSwitcher = empSwitcher;
})();
