if(!Array.indexOf){Array.prototype.indexOf = function(obj){for(var i=0; i<this.length; i++) { if(this[i]==obj) return i; } return -1;}}

function getDataFromServer(id, url, callback) {

    // Fetch the element pointed to by the id. If it exists, we destroy it so we can create a new one.
    var oScript = document.getElementById(id);

    // Point at the script tag, if it exists
    var head = document.getElementsByTagName("head").item(0);
     // Destroy the tag, if it exists
    if (oScript) {
		// Destory object
		head.removeChild(oScript);
    }
    // Create the new script tag
    oScript = document.createElement("script");

    // Setup the src attribute of the script tag
    oScript.setAttribute("src", url);

    // Set the id attribute of the script tag
    oScript.setAttribute("id",id);

    // Create the new script tag which causes the proxy to be called
    head.appendChild(oScript);
    // Asynchronous script tag properties -- a proprietary IE "feature"
    if (isIE) {
		if  (oScript.readyState == "loaded") {
			eval(callback);
			oScript.onreadystatechange = null;
		} else {
			oScript.onreadystatechange = function(){
				if (oScript.readyState == "loaded") {
					eval(callback);
					oScript.onreadystatechange = null;
				} 
			}
		}
    // All other web browsers just do the callback function
    } else {
       eval(callback);
    }
}

function setCUCookie(c_name,value,expiredays)
{
	var exdate=new Date();
	exdate.setDate(exdate.getDate()+expiredays);
	document.cookie=c_name+ "=" +escape(value)+
	((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}

function readCookie(name)
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;

}

function showLoginForm(option)
{
	var url = serverURL + '/filmedia/login.php?r='+escape(window.location.toString());
	if(option!=null){
		url += '&'+option;
	}
	window.location = url;
}

//
// user info
//
function getUserInfo()
{
	var id = 'getUserInfo';
	//var sendPath = encodeURIComponent('token='+readCookie('cu_sess_id'));
	var sendPath = 'token='+readCookie('cu_sess_id');
	var url = serverURL+'/xdscripts/getUserInfo.php?'+sendPath;
	getDataFromServer(id,url,'onGetUserInfo()');
}

function onGetUserInfo()
{
	if( (typeof userData)=='undefined' ){
		setTimeout(onGetUserInfo, 500);
		return;
	}

	if(userData.isOK && userData.isLoggedIn){
		$j('loginLink').innerHTML = '<a href="'+serverURL+'/logout.php">Log Out</a>';
		$j('welcome').innerHTML = '<a onmouseout="normalInnerImage(this)" onmouseover="rollOverInnerImage(this)" style="text-decoration: none;" href="'+serverURL+'/profile.php">'
								+'<img id="iconProfile" title="edit/update profile" alt="" src="'+serverURL+'/images/filmedia/icon_profile.gif"/><i style="text-decoration: underline;"> '+userData.autoName+'</i></a>';
	
		prePopulateCommentFields(userData.autoName, userData.email, userData.url);
	}
}

//
// related forum
//
function getRelatedForum(categoryID) {
	var id = 'getRelatedForum';
	var sendPath = 'categoryID='+categoryID;
	var url = serverURL+'/xdscripts/getRelatedForum.php?'+sendPath;
	getDataFromServer(id,url,'onGetRelatedForum()');
}


function onGetRelatedForum() {
	if( (typeof relatedForum)=='undefined' ) {
		setTimeout(onGetRelatedForum, 500);
		return;
	}
	
	if(relatedForum.isOK){
		$j('relatedForumHeader').innerHTML = '<a href="'+relatedForum.link+'">'+relatedForum.header+'</a>';
		$j('relatedForumDesc').innerHTML = relatedForum.description;
	}
}

//
// other blogs
//
function getOtherBlogs() {
	var id = 'getOtherBlogs';
	var sendPath = '';
	var url = serverURL+'/xdscripts/getOtherBlogs.php?'+sendPath;
	getDataFromServer(id,url,'onGetOtherBlogs()');
}

function onGetOtherBlogs() {
	if( (typeof otherBlogs)=='undefined' ) {
		setTimeout(onGetOtherBlogs, 500);
		return;
	}
	
	if(otherBlogs.isOK){
		var ob = $j('otherBlogsList');
		for(var i=0;i< otherBlogs.result.length;i++){
			var blog = otherBlogs.result[i];
			
			var div = document.createElement('div');
			div.className = 'other-blog-container';
			
			var div2 = document.createElement('div');
			div2.className = 'other-blog-image';
			div2.innerHTML = '<a href="'+blog.link+'"><img src="'+blog.imageURL+'" alt=""/></a>';
			
			var div3 = document.createElement('div');
			div3.className = 'other-blog-desc';
			div3.innerHTML = '<h3 style="margin-bottom:5px"><a href="'+blog.link+'">'+blog.title+'</a>:</h3>';
			div3.innerHTML += blog.description;
			
			div.appendChild(div2);
			div.appendChild(div3);
			
			ob.appendChild(div);
		}
	}
}

function showXDMenu(eventType, type)
{
	if( (typeof userData)=='undefined' ){
		setTimeout("showXDMenu('"+type+"')", 500);
		return;
	}
	
	if(!userData.isLoggedIn){
		if(eventType==1){
			showLoginForm();
		}
		return;
	}
	
	showMenu(type);	
}

function showXDJoinExperts() {
	/*if( (typeof userData)=='undefined' ){
		setTimeout("showXDJoinExperts()", 500);
		return;
	}
	
	if(!userData.isLoggedIn){
		showLoginForm();
		return;
	}
	*/
	//showJoinExperts();	
	window.location = serverURL + '/truthseekers/joindirectory';
	return true;
}

function showXDPostProjects() {
	if( (typeof userData)=='undefined' ){
		setTimeout("showXDPostProjects()", 500);
		return;
	}
	
	if(!userData.isLoggedIn){
		showLoginForm();
		return;
	}
	
	showPostProject(true);	
}

function prePopulateCommentFields(name, email, url)
{
	if($j('comment-author')){
		$j('comment-author').value = name;
		$j('comment-email').value = email;
		$j('comment-url').value = url;
	}
}


//
// rating
//
var cu_cr = 0, cu_cp, cu_rid = 'blogRating';
function setBlogRating(num, update) {
	var div = document.getElementById(cu_rid);
	if(div) {
		div.style.backgroundPosition = getBlogRatingPosition(num);
		var temp = cu_cr;
		cu_cr = num;
		if(num>0 && update) {
			updateBlogCookie(cu_cp, num);
			updateBlogRating(num);
			// average rating.
			var avgRating = Math.floor((temp*parseInt(bRating.numUsers)+parseInt(num))/(parseInt(bRating.numUsers)+1));
			setBlogRating(avgRating, false);
			bRating.enabled = false;
			
			alert("Thank you for rating this post.\nThe average rating is "+avgRating+".");
		}
	}
}
function updateBlogCookie(id, num) {
	var ck = readCookie('cu_blogRating');
	if(ck){
		var updated = false;
		var arr = ck.split('/');
		for(var i=0;i<arr.length;i++){
			var val = arr[i].split('.');
			if(val[0]==id){
				arr[i] = id+'.'+num;
				updated = true;
				break;
			}
		}
		
		var newVal = (updated) ? arr.join('/') : ck+'/'+id+'.'+num;
		setCUCookie('cu_blogRating',newVal, 365);
	}
	else {
		setCUCookie('cu_blogRating',id+'.'+num, 365);
	}
}
function checkBlogCookie(id) {
	var ck = readCookie('cu_blogRating');
	if(ck){
		var arr = ck.split('/');
		for(var i=0;i<arr.length;i++){
			var val = arr[i].split('.');
			if(val[0]==id){
				return val[1];
			}
		}
	}
	return -1;
}
function getBlogRatingPosition(num) {
	var x = 18*(num-5);
	return x+'px 0px';
}
function createBlogRating(id) {
	cu_rid = id;
	var div=document.getElementById(cu_rid);
	if(!div) return;
	
	var imgW=18, imgH=40;
	with(div.style) {
		backgroundImage = 'url('+serverURL+'/images/icon_blog_rating.gif)';
		backgroundRepeat = 'no-repeat';
		width = (imgW*5)+'px';
		height= imgH+'px';
	}
	for(var i=1;i<=5;i++){
		var img = new Image();
		img.src=serverURL+'/images/spacer.gif';
		img.style.width = imgW+'px';
		img.style.height=imgH+'px';
		img.setAttribute('num',i);
		if(bRating.enabled) {
			img.onmouseover = function() { if(bRating.enabled) div.style.backgroundPosition = getBlogRatingPosition(this.getAttribute('num')) }
			img.onmouseout = function() { if(bRating.enabled)  div.style.backgroundPosition = getBlogRatingPosition(cu_cr); }
		}
		img.onclick = function() { if(bRating.enabled) setBlogRating(this.getAttribute('num'),true); else alert('You have already rated this post.') }
		div.appendChild(img);
	}
}
function getBlogRating(rid)
{
	cu_rid = rid;
	cu_cp = window.location.toString().replace(/^.*\/([^\/]+)\.html$/,'$1');
	var rt = checkBlogCookie(cu_cp);
	var id = 'getBlogRating';
	var sendPath = 'rid='+cu_cp+'&rt='+rt;
	var url = serverURL+'/xdscripts/getBlogRating.php?'+sendPath;
	getDataFromServer(id,url,'onGetBlogRating()');
}

function onGetBlogRating() {
	if( (typeof bRating)=='undefined' ) {
		setTimeout(onGetBlogRating, 500);
		return;
	}
	if(bRating.isOK){
		createBlogRating(cu_rid);
		setBlogRating(Math.floor(bRating.rating), false);
	}
}

function updateBlogRating(rt){
	var id = 'updateBlogRating';
	var sendPath = 'rid='+cu_cp+'&rt='+rt;
	var url = serverURL+'/xdscripts/setBlogRating.php?'+sendPath;
	getDataFromServer(id,url,'onUpdateBlogRating()');
}

function onUpdateBlogRating(){
}

//
// blog quote
// 
function getBlogQuote(url) {
	var id = 'getBlogQuote';
	var sendPath = 'url='+escape(url);
	var url = serverURL+'/xdscripts/getBlogQuote.php?'+sendPath;
	getDataFromServer(id,url,'onGetBlogQuote()');
}

function onGetBlogQuote() {
	if( (typeof blogQuote)=='undefined' ) {
		setTimeout(onGetBlogQuote, 500);
		return;
	}
	
	if(blogQuote.isOK){
		$j('blog-quote').innerHTML = blogQuote.content;
		$style('blog-quote').display = 'block';
	}
}


//
// about writer
//
function getAboutWriter(nickname) {
	var id = 'getAboutWriter';
	var sendPath = 'nickname='+escape(nickname);
	var url = serverURL+'/xdscripts/getAboutWriter.php?'+sendPath;
	getDataFromServer(id,url,'onGetAboutWriter()');
}

function onGetAboutWriter() {
	if( (typeof aboutWriter)=='undefined' ) {
		setTimeout(onGetAboutWriter, 500);
		return;
	}
	
	if(aboutWriter.isOK){
		$j('about-writer-profile').innerHTML = aboutWriter.content;
		$style('about-writer').display = 'block';
	}
}

//
// link tv list
//
function getLinkTVList() {
	var id = 'getLinkTVList';
	var url = serverURL+'/xdscripts/getLinkTVList.php';
	getDataFromServer(id,url,'onGetLinkTVList()');
}


function onGetLinkTVList() {
	if( (typeof linkTVList)=='undefined' ) {
		setTimeout(onGetLinkTVList, 500);
		return;
	}
	
	if(linkTVList.isOK){
		for(var i=0;i<linkTVList.movies.length;i++){
			var movie = linkTVList.movies[i];
			var div = document.createElement('div');
			div.innerHTML = movie.title+'<br/>'+
			                '<a href="'+movie.link+'">(view)</a>';
			document.getElementById('linkList').appendChild(div);
		}
	}
}

