var embedUserId;
var progressHtml = '<img width="180" src="http://s3.amazonaws.com/seerowww/progress.gif"/>';
var validUser = false;

function updateEmbedPreview() {
	
  if ( $('profileEmbed').checked && validUser ) {
    $('videoSelectList').hide();
	embedType = 'b='+$('userIdInput').value;
  } else if ( $('videoEmbed').checked ) {
    $('videoSelectList').show();
  	var videoOptions = $$('input.videoOption');
  	var videoSelected = false;
    for(var i = 0; i < videoOptions.length; i++) {
      if ( videoOptions[i].checked ) {
      	videoSelected = true;
		embedType = 'v='+videoOptions[i].value;
		break;
	  }
	}
    if ( videoSelected == false ) {
	  embedTextField.value = 'Please select a video.';
	  $('embedTextField').disable();
  	  $('embedPreview').update('');
	  return;
    }
  } else {
  	embedTextField.value = 'Please select an embed type.';
	$('embedTextField').disable();
  	$('embedPreview').update('');
  	return;
  }
  
  if ( $('horizEmbed').checked && validUser ) {
  	embedShape = 'Horizontal';
	embedSize = 'width="640" height="240"';
  } else if ( $('vertEmbed').checked && validUser ) {
  	embedShape = 'Vertical';
	embedSize = 'width="320" height="480"';
  } else {
  	embedTextField.value = 'Please select an embed shape.';
	$('embedTextField').disable();
  	$('embedPreview').update('');
  	return;
  }
  
  autoplay = $('autoplayOn').checked?'&autoplay=1':'';
  
  embedText = '<object '+embedSize+'><param name="movie" value="http://www.seero.com/embeds/Seero_'+embedShape+'.swf?'+embedType+autoplay+'"></param><param name="wmode" value="transparent"></param><embed src="http://www.seero.com/embeds/Seero_'+embedShape+'.swf?'+embedType+autoplay+'" type="application/x-shockwave-flash" wmode="transparent" '+embedSize+'></embed></object>';
  $('embedTextField').value = embedText;
  $('embedPreview').update(embedText);
  $('embedTextField').enable();
};


function validateUser() {
	$('userIdResult').update(progressHtml);
	userId = $('userIdInput').value;
	embedUserId = userId;
	var url = 'http://www.seero.com/live/getLiveBroadcastInfo.php?broadcaster='+userId;

	new Ajax.Request(url , {
    	onComplete : function(resp) {	
			responseRe= new RegExp (".*&found=([ft]).*", "g");
			responseData = responseRe.exec(resp.responseText);
			if (responseData[1] == 't') {
				validUser = true;
				$('userIdResult').update('');
				fetchUserVideos();
			} else {
				validUser = true;
				invalidUserId();
			}
		}
	});

};

function invalidUserId() {
	$('userIdResult').update('<span style="color:red"><b>Invalid User Id!</b></span>');
	disableAllInput();
};


function enableAllInput() {
	$('profileEmbed').enable();
	$('videoEmbed').enable();
	$('horizEmbed').enable();
	$('vertEmbed').enable();
	$('autoplayOn').enable();
	$('embedTextField').enable();
};

function disableAllInput() {
	$('videoSelectList').hide();
	$('profileEmbed').disable();
	$('videoEmbed').disable();
	$('horizEmbed').disable();
	$('vertEmbed').disable();
	$('autoplayOn').disable();
	$('embedTextField').disable();
};

function purge(d) {
    var a = d.attributes, i, l, n;
    if (a) {
        l = a.length;
        for (i = 0; i < l; i += 1) {
            n = a[i].name;
            if (typeof d[n] === 'function') {
                d[n] = null;
            }
        }
    }
    a = d.childNodes;
    if (a) {
        l = a.length;
        for (i = 0; i < l; i += 1) {
            purge(d.childNodes[i]);
        }
    }
};

function fetchUserVideos() {
	$('videoSelectList').update(progressHtml);
	var url = 'http://www.seero.com/query/fetchVoDs.php?bc='+embedUserId;
	new Ajax.Request(url , {
    	onComplete : function(transport) {
			try {
				if (window.ActiveXObject) {
					// code for IE
					var doc = new ActiveXObject("Microsoft.XMLDOM");
					doc.async="false";
					doc.loadXML(transport.responseText);
				} else {
					// code for Mozilla, Firefox, Opera, etc.
					var parser=new DOMParser();
					var doc=parser.parseFromString(transport.responseText,"text/xml");
				}
				writeUserVideos(doc);
				purge(doc);
				delete doc;
				purge(transport);
				delete transport;
			} catch(e) {					
				errStr = '';
				for(var i in e) {
					errStr += e[i]+"\n";
				}
				alert("Service error try again later, xml parse error.\n"+errStr);
			}
		
		}
	});
};

function writeUserVideos(doc) {
  videoHTML = "<table>";
  //note IE HATES adding dynamic forms
  var v = doc.documentElement.getElementsByTagName('vod');		
  					
  hasVideos = false;
  
  for(var i = 0; i < v.length ; i++) {
  	hasVideos = true;
  	vid = v[i].getElementsByTagName('source')[0].firstChild.nodeValue;
  	vid = vid.split('/').pop();
  	vidRe= new RegExp ("(.*).flv", "g");
  	vid = vidRe.exec(vid)[1];
  	checked = (vid == inputVideo)?'checked':'';
    videoHTML += '<tr style="padding-top:10px;padding-bottom:10px;"><td><input onClick="updateEmbedPreview()" class="videoOption" type="radio" name="selectVideos" value="'+vid+'" '+checked+' /></td><td width="185">';
	videoHTML += '<img hspace="10" vspace="4" width="70px"  style="float:left;padding:5px;" src="'+v[i].getElementsByTagName('thumb')[0].firstChild.nodeValue+'"/>';
	videoHTML += ''+v[i].getElementsByTagName('title')[0].firstChild.nodeValue+'</td></tr>';
  }
  
  if ( hasVideos ) {
    videoHTML += "</table>";
  } else {
    videoHTML += '<b> This user has no videos. </b>';
  }
  
  $('videoSelectList').update(videoHTML);
  errStr = '';
  enableAllInput();
  updateEmbedPreview();
};

function loadCustomEmbed() {
	validateUser();
};
