// Utils
function addEvent( obj, type, fn ) {
	if ( obj.attachEvent ) {
		obj['e'+type+fn] = fn;
		obj[type+fn] = function(){obj['e'+type+fn]( window.event );}
		obj.attachEvent( 'on'+type, obj[type+fn] );
	} else
		obj.addEventListener( type, fn, false );
}
function addCss( url ){
	var fileref=document.createElement("link");
	fileref.setAttribute("rel", "stylesheet");
	fileref.setAttribute("type", "text/css");
	fileref.setAttribute("href", url);
	if (typeof fileref!="undefined")
		document.getElementsByTagName("head")[0].appendChild(fileref);
}
function getForAttrib( element ){
	if( element.htmlFor )
		return element.htmlFor;
	else
		return element.getAttribute("for");
}
function setClassAttrib( element, newClass ){
	element.setAttribute( "class", newClass );
	element.className = newClass;
}

// Form
function setupForm(){
	var element = document.getElementById("QueuerPledgeCustom");
	
	// Events
	addEvent( element, 'focus', setCustomPledge );
	addEvent( element, 'blur', leaveCustomPledge );
	addEvent( document.getElementById("scrollL"), 'click', left );
	addEvent( document.getElementById("scrollR"), 'click', right );
	
	// Character labels
	elements = document.getElementById("scrollAll").getElementsByTagName("label");
	for( var i=0;i<elements.length;i++ ){
		addEvent(elements[i], 'click', select );
	
		var forAttrib = getForAttrib( elements[i] );
		if( document.getElementById( forAttrib ) ){
			if( document.getElementById( forAttrib ).checked == true ){
				setClassAttrib( elements[i], "highlighted" );
			}
		}
		
	}
	
	// Javascript-on styles
	addCss( "/css/niceform.css" );
}

function setCustomPledge(){
	document.getElementById("QueuerPledgePresetIdCustom").checked = true;
	
	var element = document.getElementById("QueuerPledgeCustom");
	if( element.value == originalPledge ){
		element.value = "";
	}
}
function leaveCustomPledge(){
	var element = document.getElementById("QueuerPledgeCustom");
	
	if( element.value == "" ){
		element.value = originalPledge;
	}
}
function select(){
	//De-highlight
	elements = document.getElementById("scrollAll").getElementsByTagName("label");
	for(var i=0;i<elements.length;i++){
		setClassAttrib( elements[i], "" );
	}
	
	// Highlight
	setClassAttrib( this, "highlighted" );
	
	// Select radio button
	var forAttrib = getForAttrib( this );
	document.getElementById( forAttrib ).checked =true;
}
function right(){
	document.getElementById("scrollOut").scrollLeft+=70;
}
function left(){
	document.getElementById("scrollOut").scrollLeft-=70;
}

// Setup
var originalPledge = "Or type your own demand here";
addEvent( window, 'load', setupForm );

