function URLDecode (encodedString) {
  var output = encodedString;
  var binVal, thisString;
  var myregexp = /(%[^%]{2})/;
  while ((match = myregexp.exec(output)) != null
             && match.length > 1
             && match[1] != '') {
    binVal = parseInt(match[1].substr(1),16);
    thisString = String.fromCharCode(binVal);
    output = output.replace(match[1], thisString);
  }
  return output;
}

function createCookie(name,value,days) {
	trace('createCookie: creating cookie '+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 URLDecode(c.substring(nameEQ.length,c.length));
	}
	return null;
}

function eraseCookie(name) {
	var expirationDate = new Date;
	expirationDate.setMonth(expirationDate.getMonth()-1);
	trace('eraseCookie: erasing cookie '+ expirationDate);
	document.cookie = name+"=expired; expires=" + expirationDate.toGMTString() +"; path=/";
}

function setFilter(type, value){
	var cookie		 = readCookie('content_filter'); //Get the cookie
	var cookie_value = ""; 							 //New Cookie string
	var cookie_done  = false;
	if(cookie){
		var cookie_vars = cookie.split('&');
		for(var i=0; i< cookie_vars.length; i++){
			var c_var = cookie_vars[i];
			while (c_var.charAt(0)==' ') c_var = c_var.substring(1,c_var.length);
			if (c_var.indexOf('type') == 0) var cookie_type = c_var.substring(5,c_var.length);
			if (c_var.indexOf('filter') == 0) var cookie_filter = c_var.substring(7,c_var.length);
		}
		if(cookie_type){
			trace('SetFilter: Type set');
			trace('SetFilter: Vars = '+ cookie_type);
			var type_vars 			= cookie_type.split(',');
			if((cookie_type.indexOf('straight') > -1 && cookie_type.indexOf('gay') > -1 && value == "tranny") || 
			(cookie_type.indexOf('straight') > -1 && cookie_type.indexOf('tranny') > -1 && value == "gay") ||
			(cookie_type.indexOf('tranny') > -1 && cookie_type.indexOf('gay') > -1 && value == "straight")
			){
				trace('SetFilter: All types set, stopping');
				return;
			}
			if(type_vars.length == 2){
				//check if value is in there
				var passed = false;
				for(var i=0; i < type_vars.length; i++){
					if(type_vars[i] == value){
						passed = true;
					}
				}
				if(passed == false){
					//return;
				}
			}
			var cookie_type_array 	= new Array();
			if(type == 'sex'){ 
				cookie_done = true;
				cookie_type_array 	= setItem(type_vars, value);
			} else {
				cookie_type_array 	= type_vars;
			}
			cookie_value			= 'type='+cookie_type_array.join(',');
			
		}
		if(cookie_filter){
			trace('SetFilter: Filter set');
			trace('SetFilter: Vars = '+ cookie_filter);
			var cookie_filter_array 		= new Array();
			var filter_vars 				= cookie_filter.split(',');
			if((cookie_filter.indexOf('widescreen') > -1 && value == "standard") || (cookie_filter.indexOf('standard') > -1 && value == "widescreen")){
				if(cookie_filter.indexOf('widescreen') > -1){
					cookie_filter_array 	= setItem(filter_vars, 'widescreen');
					updateIcon('widescreen');
				} else if(cookie_filter.indexOf('standard') > -1){
					cookie_filter_array 	= setItem(filter_vars, 'standard');
					updateIcon('standard');
				}
			}
			
			if(filter_vars == 4){
				//check if value is in there
				var passed = false;
				for(var i=0; i < filter_vars.length; i++){
					if(filter_vars[i] == value){
						passed = true;
					}
				}
				if(passed == false){
					//return;
				}
			}
			
			if(type == 'filter'){
				cookie_done = true;
				cookie_filter_array			= setItem(filter_vars, value);
			} else {
				cookie_filter_array			= filter_vars;
			}			
			cookie_value					= (cookie_value != "") ? cookie_value + '&filter='+cookie_filter_array.join(',') : 'filter='+cookie_filter_array.join(',');
		}	
		if(cookie_done == false){
			trace("SetFilter: Need to create a new "+ type);
			switch(type){
				case "sex":
					cookie_value = (cookie_value != "") ? cookie_value +'&type='+ value : 'type='+value;
				break;	
				case "filter":
					cookie_value = (cookie_value != "") ? cookie_value +'&filter='+ value : 'filter='+value;
				break;
			}			
		}
		trace('SetFilter: cookie_value = '+ cookie_value);
		if((cookie_value != "")){	
			eraseCookie('content_filter');
			createCookie('content_filter', cookie_value, 30);			
		}		
	} else {
		//Create a new cookie
		trace('SetFilter: Creating New Cookie');
		switch(type){
			case "sex":
				cookie_value = "type="+value;
			break;
			
			case "filter":
				cookie_value = "filter="+value;
			break;
		}	
		if(cookie_value != ""){	
			createCookie('content_filter', cookie_value, 30);
		}
	}
	updateIcon(value);
	document.getElementById('refreshGrey').className = 'hidden';
	document.getElementById('refresh').className = 'refreshButton refreshFilter';
	document.getElementById('clear').className = 'refreshButton refreshFilter';
	
}

function setItem(array, item){
	for(var i=0; i< array.length; i++){
		var array_item = array[i];
		if(array_item == item){
			var j = 0;
			while (j < array.length) {
				if (array[j] == array_item) {				
					array.splice(j, 1);					
				} else { j++; }
			}
			return array;
		}
	}
	array.push(item);
	return array;
}

function clearFilter(){
	eraseCookie('content_filter');
	updateIcon('standard', true);
	updateIcon('widescreen', true);
	updateIcon('gay', true);
	updateIcon('tranny', true);
	updateIcon('straight', true);
	document.getElementById('refreshGrey').className = 'hidden';
	document.getElementById('refresh').className = 'refreshButton refreshFilter';
}