﻿
//MHC AJAX API
//This is a non-XHR style for greater code flexibility
if (!window.mhc) {

	var mhc = function() {

		var nextId = 1;

		// Methods here are not globally accessible.
		function ajax(url, data, callback) {
			var id = nextId++;
			var callbackName = setupCallback(id, callback);
			var query = objectToQuery(data);
			var script = makeScriptTag(url, query, callbackName, id);

			var head = document.getElementsByTagName('head')[0];
			head.appendChild(script);
		}

		function setupCallback(id, callback) {
			// Generate a name because the callback needs to be globally accessable: mhc.callback1()
			var callbackName = 'callback' + id;

			mhc[callbackName] = function(result) {
				// remove the callback wrapper
				mhc[callbackName] = null;

				// remove the script tag
				var script = document.getElementById('mhcapi' + id);
				if (script)
					script.parentNode.removeChild(script);

				// call the real callback
				callback(result);
			};

			// return the name;
			return 'mhc.' + callbackName;
		}

		function objectToQuery(data) {
			var query = '';
			for (var key in data) {
				query += key + '=' + encodeURIComponent(data[key]) + '&';
			}
			return query.substr(0, query.length-1);
		}

		function makeScriptTag(url, query, callback, id) {
			var script = document.createElement('script');
			script.type = 'text/javascript';
			if (url.indexOf('?') == -1)
				url += '?';
			script.src = url + query + '&output=json&callback=' + callback;
			script.id = 'mhcapi' + id;
			script.className = 'mhcapi';
			return script;
		}

		// Return just the 'public' functions.
		return {
			loadAdSystem: function(stream) {
			var url = mhc.urlBase + 'AdSystem.js';
			var data = {};
			callback = function(html){};
			ajax(url, data, callback);
			var url = mhc.urlBase + 'AdsXML.aspx?stream=' + stream;
			var data = {};
			callback = function(html){};
			ajax(url, data, callback);
			 },

			getWMPlayer: function(stream) {
			var url = mhc.urlBase + 'Player.aspx?player=wmp&stream=' + stream;
			var data = {};
			callback = function(html){document.getElementById('MHCPlayer').innerHTML = html;mhc.loadAdSystem(stream);};
			ajax(url, data, callback);
			 },

			getUMPlayer: function(stream) {
			var url = mhc.urlBase + 'umediaplayer5.js';
			var data = {};
			callback = function(html){};
			ajax(url, data, callback);
			var url = mhc.urlBase + 'MyHorseCamUMP.js';
			var data = {};
			callback = function(html){};
			ajax(url, data, callback);
			var url = mhc.urlBase + 'Player.aspx?player=u&stream=' + stream;
			var data = {};
//			 var data = {'domain':mhc.domain, path:path};
			callback = function(html){
				
				var ump = html;
				var createUMP;
				if (navigator.userAgent.indexOf('MSIE') > -1)
					{
						createUMP = '<OBJECT id="UPlayer" width="320" height="240" classid="clsid:26522409-8BBF-4c5b-A4D3-CF4B1D6F255B" CODEBASE="http://www.umediaserver.net/bin/UMediaControl5.cab"></OBJECT>';
					}
				if (navigator.userAgent.indexOf('Firefox') > -1)
					{
						createUMP = '<object id="UPlayer" width="320" height="240" type="application/x-umediaplayer5"></object>';
					}
				ump = ump.replace("[[UMediaObject]]", createUMP);
				ump += '<input type="hidden" id="hidAlias" value="' + stream + '" />';
				document.getElementById('MHCPlayer').innerHTML = ump;
				mhc.loadAdSystem(stream);};
			ajax(url, data, callback);
			 },

			getFlashPlayer: function() {
			var url = mhc.urlBase + 'MyHorseCamFlash.js';
			var data = {};
			callback = function(html){document.getElementById('MHCPlayer').innerHTML = html;};
			ajax(url, data, callback);
			 },

			 // Necessary context info.
			 domain: 'www.myhorsecam.com',
			 urlBase: 'http://www.myhorsecam.com/scripts/'
			 //domain: 'localhost:2933',
			 //urlBase: 'http://localhost:2933/scripts/'
		};

	}();

} // if (!window['mhc'])



// This is total legacy code for those who already have the old non-AJAX version
//var domain = 'localhost:2933';
var domain = 'www.myhorsecam.com';
function insertFlashStream(stream, ranchID, ranchName, ranchURL, size){

	document.write("<object type='application/x-shockwave-flash' data='http://" + domain + "/view" + size + ".swf' width='452' height='332' id='Viewer' name='Viewer'>");
	document.write("	<param name='movie' value='http://" + domain + "/view" + size + ".swf'>");
	document.write("	<param name='wmode' value='transparent'>");
	document.write("	<param name='FlashVars' value='debug=false&stream=" + stream + "&ranchID=" + ranchID + "&ranchName=" + ranchName + "&ranchURL=" + ranchURL + "'>");
	document.write("</object>");	
}


function checkStatus(){
	if (document.getElementById('WMPlayer'))
	{
		var status = document.getElementById('WMPlayer').status;
		if (status.indexOf('Playing') > -1)
			status = "Live stream by <a href='http://www.myhorsecam.com/'>MyHorseCam.com</a>. Stream your horse for free!&nbsp;&nbsp;";
		document.getElementById('divStatus').innerHTML = '<span style="font-size:9pt;font-family:Arial;">' + status + '&nbsp;&nbsp;</span>';
	}
}