function addEvent(element, eventType, lamdaFunction, useCapture) {
    if (element.addEventListener) {
        element.addEventListener(eventType, lamdaFunction, useCapture);
        return true;
    } else if (element.attachEvent) {
        var r = element.attachEvent('on' + eventType, lamdaFunction);
        return r;
    } else {
        return false;
    }
}

/*
 * Kills an event's propagation and default action
 */
function knackerEvent(eventObject) {
    if (eventObject && eventObject.stopPropagation) {
        eventObject.stopPropagation();
    }
    if (window.event && window.event.cancelBubble ) {
        window.event.cancelBubble = true;
    }

    if (eventObject && eventObject.preventDefault) {
        eventObject.preventDefault();
    }
    if (window.event) {
        window.event.returnValue = false;
    }
}

/**
* Disable Submit Button
*/
disableAfterSubmit = function() {
	inputs = document.getElementsByTagName('input');
	for(i = 0; i < inputs.length; i++) {
	if(inputs[i].type == 'submit') {
		inputs[i].onclick = function(e) {
			if(!e) e = window.event;
			target = e.target ? e.target : e.srcElement;
			target.setAttribute('id', 'disable-me');
			window.setTimeout(disableSubmit, 1);
			}
		}
	}
}

function disableSubmit() {
	document.getElementById('disable-me').disabled = true;
	document.getElementById('disable-me').value = 'Working...';
}

addEvent (window, 'load', disableAfterSubmit, false);



var tog = {

	init: function() {

		if (!document.getElementsByTagName) return;
		tog.objLink = new Array();
		tog.objDivs = document.getElementsByTagName('div');
		for (var i=0; i<tog.objDivs.length; i++) {
			if (tog.objDivs[i].className == 'toggle') {
				tog.objDivs[i].style.display = 'none';
				tog.divId = tog.objDivs[i].id + '-l';
				tog.objLink[i] = document.getElementById(tog.divId);
				tog.objLink[i].className = 'listen';
				addEvent(tog.objLink[i], 'click', tog.action, false);
			}
		}

	},

	action: function(e) {

		if (window.event) {
			var elm = window.event.srcElement;
		}else{
			var elm = e.target;
		}
		var divId = elm.id.substring(0, elm.id.lastIndexOf('-l'));
		var objDiv = document.getElementById(divId);
		if (objDiv.style.display == 'none') {
			objDiv.style.display = 'block';
		}else{
			objDiv.style.display = 'none';
		}

	}

}

addEvent(window, 'load', tog.init, false);



var autoFm = {

	init: function() {
	
		if (!document.getElementsByTagName) return;
		if (document.forms[0] && document.forms[0].getElementsByTagName('li')) {
			autoFm.fm = document.forms[0];
			autoFm.elms = autoFm.fm.getElementsByTagName('li');
			for (var i=0; i<autoFm.elms.length; i++) {
				if (autoFm.elms[i].className == 'fm_auto') {
					if (autoFm.fm.fm_ready.value == 0) addEvent(autoFm.elms[i].getElementsByTagName('select')[0], 'change', autoFm.go, false);
				}
			}
		}
		
	},
	
	go: function(e) {		
		knackerEvent(e);
		var target = window.event ? window.event.srcElement : e ? e.target : null;
		if (!target) return;		
		target.form.submit();		
	}
	
}
		
addEvent(window, 'load', autoFm.init, false);

// perfect popup
var newWin = null;
function popUp(strURL, strType, strHeight, strWidth) {
 if (newWin != null && !newWin.closed)
   newWin.close();
 var strOptions="";
 if (strType=="console")
   strOptions="resizable,scrollbars,location,height="+
     strHeight+",width="+strWidth;
 if (strType=="fixed")
   strOptions="status,height="+
     strHeight+",width="+strWidth;
 if (strType=="elastic")
   strOptions="toolbar,menubar,scrollbars,"+
     "resizable,location,height="+
     strHeight+",width="+strWidth;
 newWin = window.open(strURL, 'newWin', strOptions);
 newWin.focus();
}