
function starMOn(iid,num){
	starz = document.getElementById(iid);
	starz.style.backgroundImage="url('/members/images/o"+num+"stars.gif')";
}
function starMOff(iid){
	eval('if (typeof(stars'+iid+') == "undefined"){current=0}else{current=stars'+iid+'}');
	starz = document.getElementById(iid);
	eval(' usersstars = (stars'+iid+'type==1)?true:false; ' );	
	if(current) current = Math.round(current);
	if (usersstars){
		starz.style.backgroundImage= (current == 0) ? "url('/members/images/0stars.gif')" : "url('/members/images/"+current+"stars.gif')";		
	}else{
		starz.style.backgroundImage= (current == 0) ? "url('/members/images/0stars.gif')" : "url('/members/images/y"+current+"stars.gif')";		
	}
	//alert(starz.style.backgroundImage);
}
function starMNOTClk(iid,type,num){
	if (type=='USER'){
		eval('stars'+iid+'type=1');
	}else{
		eval('stars'+iid+'type=0');			
	}
	eval('stars'+iid+'=num');	
}
function starMClk(iid,num){
	eval('stars'+iid+'=num');	
	eval('stars'+iid+'type=1');	
	var url = "/members/functions/processstars.php?id="+iid+"_"+num;
	AJAXsend(url);	
}


function faveClk(iid,noclick){
	var randomnumber=Math.random()*1231;
	var url = "/members/functions/processsfaves.php?id="+iid+"&noset="+noclick+"&key="+randomnumber;
	GetAJAXContent(url, iid, "<img src='/members/images/ajaxload.gif' />");
}
	


/****************************************************************************************
** USER TAGGING 																																**
*****************************************************************************************/

function removetag(gid,tagno){
	var url = "/members/functions/usertags.ajax.php?gid="+gid+"&remove="+tagno;
	GetAJAXContent(url, 'usertags', "<img src='/members/images/ajaxload.gif' />");
}

function addtag(gid){
	var tagfield = document.getElementById('usertagname');
	var tagcontent = urlencode(tagfield.value);
	tagfield.value="";
	var url = "/members/functions/usertags.ajax.php?gid="+gid+"&add="+tagcontent;
	GetAJAXContent(url, 'usertags', "<img src='/members/images/ajaxload.gif' />");
}




/****************************************************************************************
** GetXmlHttpObject																															**
** FIRST FIND OUT WHICH VERSION OF XMLREQUEST WE ARE USING AND SET THAT TO VARIABLE xmlHttp	**
*****************************************************************************************/
function GetXmlHttpObject()
{
	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;
}

/****************************************************************************************
** AJAXsend - USED TO SEND VARS TO A SCRIPT THAT RETURNS NO DATA													**
*****************************************************************************************
** theurl 		- The URL of the page you wish to SET data to																	**
*****************************************************************************************/
function AJAXsend(theurl){
	xmlHttp=GetXmlHttpObject()
	if (xmlHttp == null){
		//document.location.href = theurl ;
	}else{
		xmlHttp.open("GET",theurl,true);
		xmlHttp.send(null); 
	}
}


/****************************************************************************************
** GetAJAXContent - USED TO LOAD A NEW PAGE INTO AN OBJECT 															**
*****************************************************************************************
** theurl 		- The URL of the page you wish to load																				**
** atarget 		- The Target object (dom id)																							**
** aholding 	- What to show while we are waiting																					**
*****************************************************************************************/
function GetAJAXContent(theurl, atarget, aholding){
	target	=	atarget;
	holding	=	aholding;
	xmlHttp=GetXmlHttpObject()
	if (xmlHttp == null){
		//alert ("No AJAX!");
		document.location.href = theurl ;
	}else{
		xmlHttp.onreadystatechange=stateChanged;
		xmlHttp.open("GET",theurl,true);
		xmlHttp.send(null); 
	}
}
/****************************************************************************************
** stateChanged - CHECKS THE READYSTATE AND IF THE DATE IS SLILL LOADING, DISPLAYS holding			**
*****************************************************************************************/
function stateChanged() { 
	if (xmlHttp.readyState==4){ 
		document.getElementById(target).innerHTML=xmlHttp.responseText;
	}
	if ( xmlHttp.readyState==1){ 
		if (holding != "") document.getElementById(target).innerHTML=holding;
	}
	//alert(xmlHttp.readyState);
}



function urlencode( str ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Philip Peterson
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: AJ
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: travc
    // +      input by: Brett Zamir (http://brett-zamir.me)
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: Lars Fischer
    // %          note 1: info on what encoding functions to use from: http://xkr.us/articles/javascript/encode-compare/
    // *     example 1: urlencode('Kevin van Zonneveld!');
    // *     returns 1: 'Kevin+van+Zonneveld%21'
    // *     example 2: urlencode('http://kevin.vanzonneveld.net/');
    // *     returns 2: 'http%3A%2F%2Fkevin.vanzonneveld.net%2F'
    // *     example 3: urlencode('http://www.google.nl/search?q=php.js&ie=utf-8&oe=utf-8&aq=t&rls=com.ubuntu:en-US:unofficial&client=firefox-a');
    // *     returns 3: 'http%3A%2F%2Fwww.google.nl%2Fsearch%3Fq%3Dphp.js%26ie%3Dutf-8%26oe%3Dutf-8%26aq%3Dt%26rls%3Dcom.ubuntu%3Aen-US%3Aunofficial%26client%3Dfirefox-a'
                             
    var histogram = {}, unicodeStr='', hexEscStr='';
    var ret = (str+'').toString();
    
    var replacer = function(search, replace, str) {
        var tmp_arr = [];
        tmp_arr = str.split(search);
        return tmp_arr.join(replace);
    };
    
    // The histogram is identical to the one in urldecode.
    histogram["'"]   = '%27';
    histogram['(']   = '%28';
    histogram[')']   = '%29';
    histogram['*']   = '%2A';
    histogram['~']   = '%7E';
    histogram['!']   = '%21';
    histogram['%20'] = '+';
    histogram['\u00DC'] = '%DC';
    histogram['\u00FC'] = '%FC';
    histogram['\u00C4'] = '%D4';
    histogram['\u00E4'] = '%E4';
    histogram['\u00D6'] = '%D6';
    histogram['\u00F6'] = '%F6';
    histogram['\u00DF'] = '%DF';
    histogram['\u20AC'] = '%80';
    histogram['\u0081'] = '%81';
    histogram['\u201A'] = '%82';
    histogram['\u0192'] = '%83';
    histogram['\u201E'] = '%84';
    histogram['\u2026'] = '%85';
    histogram['\u2020'] = '%86';
    histogram['\u2021'] = '%87';
    histogram['\u02C6'] = '%88';
    histogram['\u2030'] = '%89';
    histogram['\u0160'] = '%8A';
    histogram['\u2039'] = '%8B';
    histogram['\u0152'] = '%8C';
    histogram['\u008D'] = '%8D';
    histogram['\u017D'] = '%8E';
    histogram['\u008F'] = '%8F';
    histogram['\u0090'] = '%90';
    histogram['\u2018'] = '%91';
    histogram['\u2019'] = '%92';
    histogram['\u201C'] = '%93';
    histogram['\u201D'] = '%94';
    histogram['\u2022'] = '%95';
    histogram['\u2013'] = '%96';
    histogram['\u2014'] = '%97';
    histogram['\u02DC'] = '%98';
    histogram['\u2122'] = '%99';
    histogram['\u0161'] = '%9A';
    histogram['\u203A'] = '%9B';
    histogram['\u0153'] = '%9C';
    histogram['\u009D'] = '%9D';
    histogram['\u017E'] = '%9E';
    histogram['\u0178'] = '%9F';
    
    // Begin with encodeURIComponent, which most resembles PHP's encoding functions
    ret = encodeURIComponent(ret);
 
    for (unicodeStr in histogram) {
        hexEscStr = histogram[unicodeStr];
        ret = replacer(unicodeStr, hexEscStr, ret); // Custom replace. No regexing
    }
    
    // Uppercase for full PHP compatibility
    return ret.replace(/(\%([a-z0-9]{2}))/g, function(full, m1, m2) {
        return "%"+m2.toUpperCase();
    });
}
