// JS for Uncrate.com
// Copyright 2005 - Uncrate

// Written by: Colin D. Devroe
// URL: http://chancecube.com/

function sh(d) {
	div = document.getElementById(d);
	
	if (div.style.display == 'none' || div.style.display == '') {
		div.style.display = 'block';
	} else {
		div.style.display = 'none';
	}
}

function buildHTML(u) {
	d = document.getElementById('d');
	limit = document.getElementById('limit').value;
	code = document.getElementById('code');
	
	if (d.checked == true) {
		d = 'n';
	} else {
		d = 'y';
	}
	
	url = 'http://www.uncrate.com/stuff/share.php?u='+u+'&d='+d+'&l='+limit;
	
	html = '<script language="javascript" type="text/javascript" src="'+url+'"></script>';
	
	code.value = html;
}


function checkPrefs (name) {
	var prefs = readCookie(name);
	if (prefs) {
		switchView(prefs);
	} else {
		switchView('large');
	}
}

function switchView(size) {
	var widget = document.getElementById("widget");
	widget.innerHTML = '<img class="spinner" src="http://www.uncrate.com/stuff/images/spinner.gif" alt="Spinner" />';
	// Effect here
	
	// Set cookie
	createCookie('uncrateHome',size,365);
	
	getView(size);
	
return;
}

function loadView(type) {
	var widget = document.getElementById("widget");
	widget.innerHTML = '<img class="spinner" src="http://www.uncrate.com/stuff/images/spinner.gif" alt="Spinner" />';
	
	loadType(type);
	
return;
}

function switchFavView(size) {
	var widget = document.getElementById("widget");
	widget.innerHTML = '<img class="spinner" src="http://www.uncrate.com/stuff/images/spinner.gif" alt="Spinner" />';
	// Effect here
	
	// Set cookie
	createCookie('uncrateFav',size,365);
	
	getFavView(size);
	
return;
}

function createCookie(name,value,days)
{
	if (days)
	{
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

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 eraseCookie(name)
{
	createCookie(name,"",-1);
}

// Save or Delete Favorite
function loadType(type) {
	if (type == 'category') {
		type = '/includes/category.php';
	} else if (type == 'date') {
		type = '/includes/date.php';
	} else if (type == 'popular') {
		type = '/includes/popular.php';
	}
	url = type; //'/stuff/ajax_stuff.php?entry_id='+i+'&username='+u;
	runPhpXMLhttp = new myXMLHttpRequest();
	runPhpXMLhttp.open("GET",url,true);
	runPhpXMLhttp.onreadystatechange=function() {
	    if (runPhpXMLhttp.readyState==4) {
	      responsestring = runPhpXMLhttp.responseText;
		  var widget = document.getElementById("widget");
		  widget.innerHTML = responsestring;
	    } else {
			//alert ('ERORORORORORR');
		} // end if
		//alert (runPhpXMLhttp.readyState);
	} // end function
	
	runPhpXMLhttp.send(null);
	return false;
} // end getView

// Save or Delete Favorite
function getFavView(size) {
	if (size == 'small') {
		size = '/stuff/inc_users-stuff.php?size=small';
	} else if (size == 'medium') {
		size = '/stuff/inc_users-stuff.php?size=medium';
	} else if (size == 'large') {
		size = '/stuff/inc_users-stuff.php?size=large';
	}
	url = size; //'/stuff/ajax_stuff.php?entry_id='+i+'&username='+u;
	runPhpXMLhttp = new myXMLHttpRequest();
	runPhpXMLhttp.open("GET",url,true);
	runPhpXMLhttp.onreadystatechange=function() {
	    if (runPhpXMLhttp.readyState==4) {
	      responsestring = runPhpXMLhttp.responseText;
		  var widget = document.getElementById("widget");
		  if (size == 'medium' || size == 'large') {
		  	widget.innerHTML = '<div class="lefttext">'+responsestring+'</div>';
		  } else {
			widget.innerHTML = '<div class="leftthumbtext">'+responsestring+'</div>';
		}
	    } else {
			//alert ('ERORORORORORR');
		} // end if
		//alert (runPhpXMLhttp.readyState);
	} // end function
	
	runPhpXMLhttp.send(null);
	return false;
} // end getView

// Save or Delete Favorite
function getView(size) {
	if (size == 'small') {
		size = '/includes/small.php';
	} else if (size == 'medium') {
		size = '/includes/medium.php';
	} else if (size == 'large') {
		size = '/includes/large.php';
	}
	url = size; //'/stuff/ajax_stuff.php?entry_id='+i+'&username='+u;
	runPhpXMLhttp = new myXMLHttpRequest();
	runPhpXMLhttp.open("GET",url,true);
	runPhpXMLhttp.onreadystatechange=function() {
	    if (runPhpXMLhttp.readyState==4) {
	      responsestring = runPhpXMLhttp.responseText;
		  var widget = document.getElementById("widget");
		  widget.innerHTML = responsestring;
	    } else {
			//alert ('ERORORORORORR');
		} // end if
		//alert (runPhpXMLhttp.readyState);
	} // end function
	
	runPhpXMLhttp.send(null);
	return false;
} // end getView


/////// XMLHTTPREQUEST ( AJAX ) /////////
function myXMLHttpRequest() {
  var xmlhttplocal;
  try {
    xmlhttplocal= new ActiveXObject("Msxml2.XMLHTTP")
 } catch (e) {
  try {
    xmlhttplocal= new ActiveXObject("Microsoft.XMLHTTP")
  } catch (E) {
    xmlhttplocal=false;
  }
 }

if (!xmlhttplocal && typeof XMLHttpRequest!='undefined') {
 try {
  var xmlhttplocal = new XMLHttpRequest();
 } catch (e) {
  var xmlhttplocal=false;
  alert('couldn\'t create xmlhttp object');
 }
}
//alert ('xmlhttprequest has been initiated.');
return(xmlhttplocal);
}


// Save or Delete Favorite
function runPhp(i,u) {
	url = '/stuff/ajax_stuff.php?entry_id='+i+'&username='+u;
	runPhpXMLhttp = new myXMLHttpRequest();
	runPhpXMLhttp.open("GET",url,true);
	//alert (runPhpXMLhttp.readyState);
	runPhpXMLhttp.onreadystatechange=function() {
	    if (runPhpXMLhttp.readyState==4) {
	      responsestring = runPhpXMLhttp.responseText;
	      if (responsestring == 'success-on') {
				// Turn button on
				switchButton(i);
				//alert ('Button should change.');
			} else if (responsestring == 'success-off') {
				// Turn button off
				switchButton(i);
				
				// Fade the entry away
				fadeEntry(i);
	      } else {
				//alert ('No success.');
			}
	    } else {
			//alert ('ERORORORORORR');
		 }
		//alert (runPhpXMLhttp.readyState);
	}
	
	runPhpXMLhttp.send(null);
	return false;
}


function fav(i,u) {
	
	if (!u) {
		// Redirect to sign up page
		u = "E01";
	}
	
	// Set favorite on or off
	runPhp(i,u);
	
	//alert ('runPhp');
}

// When turning off an entry favorite, fade it out
function fadeEntry(i) {
	//alert (i);
	opacity('entry-'+i, 100, 0, 450);
	
	//var entrydiv = document.getElementById('entry-'+i);
	//entrydiv.style.display = 'none';
}


// Button switcher
function switchButton(i) {
	// Favorite button
	/* Images
	var favbutton = document.getElementById("OnOff-"+i);
	
	if (favbutton.src == 'http://www.uncrate.com/stuff/images/fav_off.gif') {
		favbutton.src = 'http://www.uncrate.com/stuff/images/fav_on.gif';
	} else {
		favbutton.src = 'http://www.uncrate.com/stuff/images/fav_off.gif';
	}
	*/
	
	var favbutton = document.getElementById("OnOff-"+i);
	
	if (favbutton.innerHTML == 'Save') {
		favbutton.innerHTML = 'Remove';
	} else {
		favbutton.innerHTML = 'Save';
	}
}

function opacity(id, opacStart, opacEnd, millisec) { 
    //speed for each frame 
    var speed = Math.round(millisec / 100); 
    var timer = 0;

   //alert ('before'); 
	//determine the direction for the blending, if start and end are the same nothing happens 
    if(opacStart > opacEnd) { 
        for(i = opacStart; i >= opacEnd; i--) { 
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
            timer++;
        } 
    } else if(opacStart < opacEnd) { 
        for(i = opacStart; i <= opacEnd; i++) 
            { 
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
            timer++; 
        }
    }
	
} 

//change the opacity for different browsers 
function changeOpac(opacity, id) { 
    var object = document.getElementById(id).style; 
    object.opacity = (opacity / 100); 
    object.MozOpacity = (opacity / 100); 
    object.KhtmlOpacity = (opacity / 100); 
    object.filter = "alpha(opacity=" + opacity + ")";
	 if (opacity == 0) {
		object.display = 'none';
	 }
}
