var inputs = document.getElementsByTagName('input');
var buttons = new Array();
var imagesPath = "/template/images/";

function init() {
    // quit if this function has already been called
    if (arguments.callee.done) return;

    // flag this function so we don't do the same thing twice
    arguments.callee.done = true;

    // kill the timer
    if (_timer) clearInterval(_timer);
    
    // do stuff
    preloadImages();
//	separateElements();
//	buttonHovers();
    replaceChecks(); 
//    replaceRadios();
	document.getElementById('checkImage_cb[all]').onclick = new Function('clickAll(\'cb[all]\')'); 
} 

function preloadImages() {
	preloads = new Object();
	preloads[0] = new Image(); preloads[0].src = imagesPath + "button_left_xon.gif";
	preloads[1] = new Image(); preloads[1].src = imagesPath + "button_right_xon.gif";
	preloads[2] = new Image(); preloads[2].src = imagesPath + "checkbox_checked.gif";
	preloads[3] = new Image(); preloads[3].src = imagesPath + "checkbox_unchecked.gif";
}
	
function separateElements() {
	var b = 0;
	for (var q = 0; q < inputs.length; q++) {
		if((inputs[q].type == "submit") || (inputs[q].type == "button")) {buttons[b] = inputs[q]; ++b;}}}

function buttonHovers() {
	for (var i = 0; i < buttons.length; i++) {
		buttons[i].className = "buttonSubmit";
		var buttonLeft = document.createElement('img');
		buttonLeft.src = imagesPath + "button_left.gif";
		buttonLeft.className = "buttonImg";
		buttons[i].parentNode.insertBefore(buttonLeft, buttons[i]);
		var buttonRight = document.createElement('img');
		buttonRight.src = imagesPath + "button_right.gif";
		buttonRight.className = "buttonImg";
			if(buttons[i].nextSibling) {buttons[i].parentNode.insertBefore(buttonRight, buttons[i].nextSibling);}
			else {buttons[i].parentNode.appendChild(buttonRight);}
		buttons[i].onmouseover = function() {
			this.className += "Hovered";
			this.previousSibling.src = imagesPath + "button_left_xon.gif";
			this.nextSibling.src = imagesPath + "button_right_xon.gif";}
		buttons[i].onmouseout = function() {
			this.className = this.className.replace(/Hovered/g, "");
			this.previousSibling.src = imagesPath + "button_left.gif";
			this.nextSibling.src = imagesPath + "button_right.gif";}}}

function replaceChecks() { 
    for(var i=0; i < inputs.length; i++) { 
	if(inputs[i].getAttribute('type') == 'checkbox') { 
	    var img = document.createElement('img'); 
		if(inputs[i].checked) {{img.src = imagesPath + "checkbox_checked.gif";}} 
			else {{img.src = imagesPath + "checkbox_unchecked.gif";}} 
	img.id = 'checkImage_'+inputs[i].id;
	if(!inputs[i].disabled) 
		img.onclick = new Function('checkChange(\''+inputs[i].id+'\')'); 
	img.className="checkbox";
	img.alt=(inputs[i].checked ? "v" : "x");
	
	inputs[i].parentNode.insertBefore(img, inputs[i]); 
	inputs[i].style.display='none';
	}}} 
	
function checkChange(id)
 { 
    cb=document.getElementById(id);
	cball=document.getElementById('cb[all]');
	
	cb.checked=!cb.checked;
	checkChanged(cb);
	
	cball.checked = false;
	checkChanged(cball);
	return false;
  } 
  
function checkChanged(input)
{ 
//    input=document.getElementById(id);
	var ch=input.checked;
	var img=document.getElementById('checkImage_'+input.id);
	
	img.src=(ch?(imagesPath + "checkbox_checked.gif"):(imagesPath + "checkbox_unchecked.gif"));
	
	img.alt=(ch ? "v" : "x");
	
	img.className=(ch ? "checkbox checked" : "checkbox");
} 

function clickAll(id)
{
	var cb=document.getElementById(id);
		cb.checked=!cb.checked;
		checkChanged(cb);
	var i=0;	
	while(el=document.getElementById('cb['+i+']'))
	{
		el.checked=cb.checked;
		checkChanged(el);
		i++;
	}
	return false;
}
  
function replaceRadios() { 
    for(var i=0; i < inputs.length; i++) { 
	if(inputs[i].getAttribute('type') == 'radio') { 
	    var img = document.createElement('img'); 
	    if(inputs[i].checked) {{img.src = imagesPath + "radio_checked.gif";}} 
					else {{img.src = imagesPath + "radio_unchecked.gif";}} 
					img.id = 'radioImage'+inputs[i].id; 
	    if(!inputs[i].disabled) img.onclick = new Function('radioChange('+i+')'); 
	    inputs[i].parentNode.insertBefore(img, inputs[i]); 
	    inputs[i].style.display='none';}}} 
function radioChange(i) { 
	var radios=new Array();
	var tmpradios;
	tmpradios = document.getElementsByTagName('input'); 
	for(var j=0; j < tmpradios.length; j++) { 
		if(tmpradios[j].getAttribute('name') == inputs[i].getAttribute('name'))
		{radios.push(tmpradios[j]);}}
    if(inputs[i].checked) {} 
    else { 
	for(var j=0; j < radios.length; j++) { 
			document.getElementById('radioImage'+radios[j].id).src= imagesPath + "radio_unchecked.gif"; 
			document.getElementById('radioImage'+radios[j].id).checked=''; 
		}
	inputs[i].checked = 'checked'; 
	document.getElementById('radioImage'+inputs[i].id).src = imagesPath + "radio_checked.gif";}}


/* for Mozilla/Opera9 */
if (document.addEventListener) {
    document.addEventListener("DOMContentLoaded", init, false);
}

/* for Internet Explorer */
// if (window.attachEvent) {
//	window.attachEvent("onload", function() {init()}); }
/* OR	*/
(function(i) {var u =navigator.userAgent;var e=/*@cc_on!@*/false; var st =
setTimeout;if(/webkit/i.test(u)){st(function(){var dr=document.readyState;
if(dr=="loaded"||dr=="complete"){i()}else{st(arguments.callee,10);}},10);}
else if((/mozilla/i.test(u)&&!/(compati)/.test(u)) || (/opera/i.test(u))){
document.addEventListener("DOMContentLoaded",i,false); } else if(e){     (
function(){var t=document.createElement('doc:rdy');try{t.doScroll('left');
i();t=null;}catch(e){st(arguments.callee,0);}})();}else{window.onload=i;}})(init);

/* for Safari */
if (/WebKit/i.test(navigator.userAgent)) { // sniff
    var _timer = setInterval(function() {
        if (/loaded|complete/.test(document.readyState)) {
            init(); // call the onload handler
        }
    }, 10);
}

/* for other browsers */
//window.onload = init;

