// type3.js v0.0.1_beta1, Fri Sep 4 14:03 2009
//
// Copyright (c) 2009 Eric Kesterson (http://www.type3studios.com)

// AJAX
var xmlhttp

function GetXmlHttpObject()
{
	if (window.XMLHttpRequest)
	{
		// code for IE7+, Firefox, Chrome, Opera, Safari
		return new XMLHttpRequest();
	}
	if (window.ActiveXObject)
	{
		// code for IE6, IE5
		return new ActiveXObject("Microsoft.XMLHTTP");
	}
	return null;
}

function stateChanged(id)
{
	if (xmlhttp.readyState==4)
	{
	//	document.getElementById(id).innerHTML=xmlhttp.responseText;
		var textout = xmlhttp.responseText;
		document.write.textout;
	}
}

function ajaxCall(url)
{
	xmlhttp=GetXmlHttpObject();
	if (xmlhttp==null)
	{
		alert ("Browser does not support HTTP Request");
		return false;
	}
	else
	{
		xmlhttp.open("GET",url,true);
		xmlhttp.onreadystatechange=stateChanged;
		xmlhttp.send(null);
		return true;
	}
	return false;
}

function rate(url,rating,id){
	
	xmlhttp = GetXmlHttpObject();
	
	if(xmlhttp == null){
		alert ("Your browser does not support AJAX!");
		return false;
	}

	xmlhttp.open("POST",url,true);
	xmlhttp.onreadystatechange = function(){
		
		var loader = document.getElementById('loading_'+id);
		var uldiv = document.getElementById('ul_'+id);
	
		if (xmlhttp.readyState == 4){
		
			var res = xmlhttp.responseText;
			loader.style.display = 'block';
			loader.className = 'vote_success';
			loader.innerHTML = 'Thanks for voting!';
			
			//your vote
			var yourvotediv = document.getElementById('yourvote_'+id);
			var parts = yourvotediv.firstChild.nodeValue.split(' ');
			var yourvote = parseInt(parts[0]);
			yourvotediv.innerHTML = rating;
			
			//rating out of 5
			var out = document.getElementById('outOfFive_'+id);
			var calculate = res/20;
			out.innerHTML = Math.round(calculate*100)/100; // 3.47;
			//out.innerHTML = Math.round((calculate*2),0)/2; // 3.5;
			
			//number of votes
			var votediv = document.getElementById('showvotes_'+id).firstChild.nodeValue;
			var splitted = votediv.split(' ');
			var newval = parseInt(splitted[0]) + 1;			
			//if you haven't voted before, increment vote number.
			if(isNaN(yourvote)){
				document.getElementById('showvotes_'+id).innerHTML = newval;
			}

			if(navigator.appName == 'Microsoft Internet Explorer'){
				uldiv.style.setAttribute('width',res+'%'); // IE
			} else {
				uldiv.setAttribute('style','width:'+res+'%'); // Everyone else
			}
			
		} else {
			loader.innerHTML = '<img src="../star_rating/images/rating_loading.gif" alt="loading" />';	
		}
	
	}
	xmlhttp.send(null);
	return true;
}

function subscribe(url,id){
	
	xmlhttp = GetXmlHttpObject();
	
	if(xmlhttp == null){
		alert ("Your browser does not support AJAX!");
		return false;
	}
	
	xmlhttp.open("POST",url,true);
	xmlhttp.onreadystatechange = function(){
		
		var loader = document.getElementById('subscription_loading_'+id);
		var subtext = document.getElementById('subscribe_text');
	
		if (xmlhttp.readyState == 4){
		
			var res = xmlhttp.responseText;
			subtext.innerHTML = res;
			
			loader.style.display = 'block';
			loader.className = 'subscription_success';
			loader.innerHTML = 'Thanks for subscribing!';
			
		} else {
			loader.innerHTML = '<img src="../star_rating/images/rating_loading.gif" alt="loading" />';	
		}
	
	}
	xmlhttp.send(null);
	return true;
}

function unsubscribe(url,id){
	
	xmlhttp = GetXmlHttpObject();
	
	if(xmlhttp == null){
		alert ("Your browser does not support AJAX!");
		return false;
	}
	
	xmlhttp.open("POST",url,true);
	xmlhttp.onreadystatechange = function(){
		
		var loader = document.getElementById('subscription_loading_'+id);
		var subtext = document.getElementById('subscribe_text');
	
		if (xmlhttp.readyState == 4){
		
			var res = xmlhttp.responseText;
			subtext.innerHTML = res;
			
			loader.style.display = 'block';
			loader.className = 'subscription_success';
			loader.innerHTML = 'You have successfully unsubscribed.';
			
		} else {
			loader.innerHTML = '<img src="../star_rating/images/rating_loading.gif" alt="loading" />';	
		}
	
	}
	xmlhttp.send(null);
	return true;
}

function browse(url, dir)
{
	xmlhttp=GetXmlHttpObject();
	if (xmlhttp==null)
	{
		alert ("Browser does not support HTTP Request");
		return false;
	}
	else
	{
		url = url+"main/ajax_browse/"+dir;
		
		xmlhttp.open("GET",url,true);
		xmlhttp.onreadystatechange = function(){	
			
			var gallery = document.getElementById('thumb_gallery');
		
			if (xmlhttp.readyState == 4){
			
				var res = xmlhttp.responseText;
				gallery.innerHTML = res;
			} else {
				gallery.innerHTML = "loading...";
			}
		}
		xmlhttp.send(null);
		return true;
	}
	return false;
}

// FORMS
function show(obj) {
	var el = document.getElementById(obj);
	el.style.display = 'block';
	return false;
}

function hide(obj) {
	var el = document.getElementById(obj);
	el.style.display = 'none';
	return false;
}

function toggle_open(obj) {
	var el = document.getElementById(obj);
	if ( el.style.display != 'none' ) {
		el.style.display = 'none';
	}
	else {
		el.style.display = '';
	}
}

function toggle_expand(obj, srcpath) {
	var el = document.getElementById(obj);
	var button = document.getElementById('button_' + obj);
	if ( el.style.display != 'none' ) {
		el.style.display = 'none';
		button.style.backgroundImage = "url('" + srcpath + "images/icons/expand_16.png')";
	}
	else {
		el.style.display = '';
		button.style.backgroundImage = "url('" + srcpath + "images/icons/collapse_16.png')";
	}
}

function add_to_list_unique(obj, val) {
	var el = document.getElementById(obj);
	var re = new RegExp(val);
	
	if (el.value == '') {
		el.value = val;
	}
	else {
		if(el.value.match(re)) {
		}
		else {
			el.value = el.value + ", " + val;
		}
	}
}

function replace_value(obj, val) {
	var el = document.getElementById(obj);
	el.value = val;
}

function removeItem(obj) {
	var el = document.getElementById(obj);
	var input_el = document.getElementById('input_'+obj);
	
	el.style.display = 'none';
	input_el.name = '';
	input_el.value = '';
	
	return true;
}

function removeFromForm(obj, url, action) {
	var retval;
	retval = confirm(action);
	if(retval == false) { return retval; }
	retval = ajaxCall(url);
	if(retval == false) { return retval; }
	return removeItem(obj);
}

// COMMENTS
function div_switch(obj, obj2) {
	var el1 = document.getElementById(obj1);
	var el2 = document.getElementById(obj2);
	
	if ( el1.style.display == 'none' ) {
		el1.style.display = '';
		el2.style.display = 'none';
	}
	else {
		el1.style.display = 'none';
		el2.style.display = '';
	}
}

function toggle_element_visibility(obj, obj2) {
	var el1 = document.getElementById(obj1);
	var el2 = document.getElementById(obj2);
	
	if ( el1.style.visibility == 'visible' ) {
		el1.style.visibility = 'hidden';
		el2.style.visibility = 'visible';
		el
	}
	else if ( el1.style.visibility == 'hidden' ){
		el1.style.visibility = 'visible';
		el2.style.visibility = 'hidden';
	}
}

function addLoadEvent(func) {
	var oldonload = window.onload;
	if (typeof window.onload != 'function') {
		window.onload = func;
	} else {
		window.onload = function() {
			if (oldonload) {
				oldonload();
			}
			func();
		}
	}
}

//addLoadEvent(nameOfSomeFunctionToRunOnPageLoad);
addLoadEvent(function() {
  /* more code to run on page load */
});