var xmlHttp;

function GetXmlHttpObject()
{
	var xmlHttp=null;
	try
	  {
	  // Firefox, Opera 8.0+, Safari
	  xmlHttp=new XMLHttpRequest();
	  }
	catch (e)
	  {
	  // Internet Explorer
	  try
	    {
	    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
	    }
	  catch (e)
	    {
	    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
	    }
	  }
	return xmlHttp;
}

function $(elementID)
{
	return document.getElementById(elementID);
}

function URLEncode(url){
	var SAFECHARS = "0123456789" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz" + "-_.!~*'()";
	var HEX = "0123456789ABCDEF";
	
	var plaintext = url;
	var encoded = "";
	for (var i = 0; i < plaintext.length; i++) {
		var ch = plaintext.charAt(i);
		if (ch == " ") {
			encoded += "+";
		}
		else 
			if (SAFECHARS.indexOf(ch) != -1) {
				encoded += ch;
			}
			else {
				var charCode = ch.charCodeAt(0);
				if (charCode > 255) {
					alert("Unicode Character '" + ch + "' cannot be encoded using standard URL encoding.\n" + "(URL encoding only supports 8-bit characters.)\n" + "A space (+) will be substituted.");
					encoded += "+";
				}
				else {
					encoded += "%";
					encoded += HEX.charAt((charCode >> 4) & 0xF);
					encoded += HEX.charAt(charCode & 0xF);
				}
			}
	}
	return encoded;
}

function addFieldError(el, errType)
{
	var elError = document.createElement('DIV');
	elError.className = "formError";
	elError.innerHTML = '<center>' + errType + '</center>';
	var elRoot = el;
	elRoot.parentNode.appendChild(elError);
}

function clearAllErrors(elForm)
{
	var els = elForm.getElementsByTagName('DIV');
	for (var i = 0; i < els.length; i++)
	{
		if (els[i].className == 'formError')
		{
		  els[i].parentNode.removeChild(els[i]);
		}
	}
}

function addEvent(obj,evType,fn,useCapture)
{
	var ret=false;
	if(obj!=null)
	{
		if(obj.addEventListener)
		{
			obj.addEventListener(evType,fn,useCapture);
			ret=true;
		}
		else if(obj.attachEvent)
		{
			obj.attachEvent("on"+evType,fn);
			ret=true;
		}
	}
	return ret;
}

function regCheck(expression,fieldname,errorMsg)
{
	if (!(new RegExp(expression, '')).test(fieldname.value)) {
		addFieldError(fieldname, errorMsg);
		errorProb = true;
	}
}

function init(divName)
{
  	elForm = $(divName);
	clearAllErrors(elForm);
	clearAllErrors(elForm);
}
var media_IDs = 0;

function rate(rateVal,content_type,content_id,user_id,r_id)
{
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	{
	  alert ("Your browser does not support AJAX!");
	  return;
	} 
	media_IDs = content_id;
	
	var url = "http://fad.ly/libs/ajaxFunc.php";
	var params = "type=rate";
	params=params+"&rate="+rateVal;
	params=params+"&user_id="+user_id;
	params=params+"&content_type="+content_type;
	params=params+"&content_id="+content_id;
	params=params+"&r_id="+r_id;
	
	xmlHttp.open("POST", url, true);	
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.onreadystatechange=rateComplete;
	xmlHttp.send(params);	
}

function rateComplete() 
{ 
	if (xmlHttp.readyState==4)
	{ 
		$('ratingText').innerHTML=xmlHttp.responseText;
	}
}

function favorite(fav_idss,user_id,f_id)
{
	$('share_click').className='med_share';
	$('share_div').style.display='none';
	$('fav_click').className='med_fav med_fav_click';
	$('fav_div').style.display='block';
	$('flag_click').className='med_flag';
	$('flag_div').style.display='none';
	$('share_arrow').className='';
	$('fav_arrow').className='click_arrow';
	$('flag_arrow').className='';

	var fav_escaped = unescape(fav_idss);
	var fav_ids = eval("(" + fav_escaped + ")");

	var fav_type = $('fav_options').value;

	if(fav_type=='media')
		fav_id = fav_ids.media_id;
	else if (fav_type=='episode')
		fav_id = fav_ids.playlist_id;
	else if (fav_type=='show')
		fav_id = fav_ids.show_id;

	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	{
	  alert ("Your browser does not support AJAX!");
	  return;
	} 
	media_IDs = fav_id;
	var url = "http://fad.ly/libs/ajaxFunc.php";
	var params = "type=favorite";
	params=params+"&user_id="+user_id;
	params=params+"&fav_type="+fav_type;
	params=params+"&fav_id="+fav_id;
	params=params+"&f_id="+f_id;
	
	xmlHttp.open("POST", url, true);	
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.onreadystatechange=favComplete;
	xmlHttp.send(params);
}

function favComplete() 
{ 
	if (xmlHttp.readyState==4)
	{ 
		document.getElementById('fav_div').innerHTML=xmlHttp.responseText;
	}
}

var aComment = '';

function comment(parent_type,parent_id,user_id,p_id,comment_div)
{
	//init('commentWrap');
	aComment = document.getElementById(comment_div);
	
	var noError = true;

	if (!(new RegExp('\\w', '')).test(aComment.value))
	{
		//addFieldError(aComment, "Your comment cannot be blank.");
		noError = false;
	}
	
	if(noError)
	{
		xmlHttp=GetXmlHttpObject();
		if (xmlHttp==null)
		{
		  	alert ("Your browser does not support AJAX!");
		 	return;
		} 
		var url = "http://fad.ly/libs/ajaxFunc.php";
		var params = "type=comment";
		params=params+"&parent_id="+parent_id;
		params=params+"&parent_type="+parent_type;
		params=params+"&user_id="+user_id;
		params=params+"&aComment="+aComment.value;
		params=params+"&p_id="+p_id;
		
		xmlHttp.open("POST", url, true);	
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp.setRequestHeader("Content-length", params.length);
		xmlHttp.setRequestHeader("Connection", "close");
		xmlHttp.onreadystatechange=commentComplete;
		xmlHttp.send(params);
		aComment.disabled = true;
	}
}

function commentComplete() 
{ 
	if (xmlHttp.readyState==4)
	{ 
		JSONObject = eval( "(" + xmlHttp.responseText + ")" );
		if(JSONObject.status=='ok')
		{
			var elNew = document.createElement('DIV');
			elNew.innerHTML = JSONObject.newDiv;
			var el = document.getElementById(JSONObject.parent);
			el.insertBefore(elNew,el.firstChild);
			aComment.value = '';
		}
		else
		{
			addFieldError(aComment, JSONObject.msg);
		}
		aComment.disabled = false;
	}
}

function removeComment(com_id,user_id,crem_id)
{
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	{
	  	alert ("Your browser does not support AJAX!");
	 	return;
	} 
	var url = "http://fad.ly/libs/ajaxFunc2.php";
	var params = "type=remove_comment";
	params=params+"&com_id="+com_id;
	params=params+"&crem_id="+crem_id;
	params=params+"&user_id="+user_id;
	
	xmlHttp.open("POST", url, true);	
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.onreadystatechange=remComComplete;
	xmlHttp.send(params);
	document.getElementById('rem_loader').style.display = '';
}

function remComComplete() 
{ 
	if (xmlHttp.readyState==4)
	{ 
		JSONObject = eval( "(" + xmlHttp.responseText + ")" );
		if(JSONObject.status=='ok')
		{
			var el = document.getElementById('comment_'+JSONObject.com_id);
			el.innerHTML = JSONObject.msg;
			document.getElementById('rem_loader').style.display = 'none';
		}
		else
		{
			alert(JSONObject.msg);
		}
	}
}

function flag(content_type,content_id,user_id,fl_id)
{
	xmlHttp=GetXmlHttpObject();
	if (xmlHttp==null)
	{
	  alert ("Your browser does not support AJAX!");
	  return;
	}
	
	var flag_type = $('flag_options').value;
	
	var url = "http://fad.ly/libs/ajaxFunc.php";
	var params = "type=flag";
	params=params+"&user_id="+user_id;
	params=params+"&flag_type="+flag_type;
	params=params+"&content_type="+content_type;
	params=params+"&content_id="+content_id;
	params=params+"&fl_id="+fl_id;
	
	xmlHttp.open("POST", url, true);	
	xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlHttp.setRequestHeader("Content-length", params.length);
	xmlHttp.setRequestHeader("Connection", "close");
	xmlHttp.onreadystatechange=flagComplete;
	xmlHttp.send(params);	
}

function flagComplete() 
{ 
	if (xmlHttp.readyState==4)
	{ 
		$('flag_div').innerHTML=xmlHttp.responseText;
	}
}

function funcShow(show_type)
{
	if(show_type=='share')
	{
		$('share_click').className='med_share med_share_click';
		$('share_div').style.display='block';
		$('fav_click').className='med_fav';
		$('fav_div').style.display='none';
		$('flag_click').className='med_flag';
		$('flag_div').style.display='none';
		$('share_arrow').className='click_arrow';
		$('fav_arrow').className='';
		$('flag_arrow').className='';
	}
	else if (show_type=='fav')
	{
		$('share_click').className='med_share';
		$('share_div').style.display='none';
		$('fav_click').className='med_fav med_fav_click';
		$('fav_div').style.display='block';
		$('flag_click').className='med_flag';
		$('flag_div').style.display='none';
		$('share_arrow').className='';
		$('fav_arrow').className='click_arrow';
		$('flag_arrow').className='';
	}
	else
	{
		$('share_click').className='med_share';
		$('share_div').style.display='none';
		$('fav_click').className='med_fav';
		$('fav_div').style.display='none';
		$('flag_click').className='med_flag med_flag_click';
		$('flag_div').style.display='block';
		$('share_arrow').className='';
		$('fav_arrow').className='';
		$('flag_arrow').className='click_arrow';
	}
}

function toggleView(div_id)
{
	var divElement = $(div_id);
	if (divElement.style.display == 'block' || divElement.style.display == '')
	  divElement.style.display = 'none';
	else
	  divElement.style.display = 'block';
}

