var AjaxManager = {	
	sendCommand : function(url, callback){
		//alert(url);
		var ajax = new Ajax.Request(url, {
			onSuccess: function(response){AjaxManager.ajaxCommandsCallback(callback, response);},		
		    on404: function(response) {callback('')},
		    onFailure: function(t) {alert('Ajax Error. Status = ' + t.status + ' Message = ' + t.statusText + '\n' + url);},			
			method: 'get',
			parameters: ''
		});
	},

	ajaxCommandsCallback : function(fn_callback, response){
		var parsey = response.responseText;
		if (/jsonVersion/.test(parsey)) {
			var parsed = eval('(' + parsey + ')');			
		} else if (/\<video\>/.test(parsey)) {
			var parsed = AjaxManager.getFeedJson(parsey);
		} else {
			var parsed = parsey;
		}
		fn_callback(parsed);
	},

	getFeedJson: function(text_string) {
		// parse into XML object
		if (window.ActiveXObject) {
			var xmldoc=new ActiveXObject("Microsoft.XMLDOM");
	  		xmldoc.loadXML(text_string);
		} else {
			var parser=new DOMParser();
	  		var xmldoc=parser.parseFromString(text_string,"text/xml");
	  	}

		//create json array of videos
		var vidElements = ['video_id', 'image_url', 'tz_image_url', 'splash_image_url', 'video_url', 'tease_txt', 'vid_duration'];
		var elements_ct = vidElements.length;
		var cnn_video = {name: '', path: '', video: []};

		var channel_deets = xmldoc.getElementsByTagName('cnn_video');	

		if (channel_deets[0].attributes) {
			var ct = channel_deets[0].attributes.length;
			for (var i=0; i < ct; i++) {
				var node = channel_deets[0].attributes[i].name
				cnn_video[node] = channel_deets[0].attributes[i].nodeValue;
			}
		}

		var XML_videos = xmldoc.getElementsByTagName("video");
		var ct = XML_videos.length;
		for (var i = 0; i < ct; i++) {
			var thisvid = {};
			for (var j=0; j<elements_ct; j++) {
				try {
					thisvid[vidElements[j]] = (XML_videos[i].getElementsByTagName(vidElements[j])[0]) ?	XML_videos[i].getElementsByTagName(vidElements[j])[0].childNodes[0].nodeValue : 'undef';		
				} catch (e) {
					thisvid[vidElements[j]] = '';
				}

			}

			cnn_video.video[i] = thisvid;
		}
		return cnn_video;		
	}
}
