/*
* addEvent function from http://www.quirksmode.org/blog/archives/2005/10/_and_the_winner_1.html
*/
function addEvent(obj, type, fn) {
	if (obj.addEventListener) {
		obj.addEventListener(type, fn, false);
	} else 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] );
	}
}
function removeEvent(obj, type, fn) {
	if (obj.removeEventListener) {
		obj.removeEventListener(type, fn, false);
	} else if (obj.detachEvent) {
		obj.detachEvent( "on"+type, obj[type+fn] );
		obj[type+fn] = null;
		obj["e"+type+fn] = null;
	}
}



/*
* More accessible compact forms
*/
function initOverLabels () {
	if (!document.getElementById) return;
	var labels, id, field;
	// Set focus and blur handlers to hide and show
	// LABELs with 'overlabel' class names.
	labels = document.getElementsByTagName('label');
	for (var i = 0; i < labels.length; i++) {
		if (labels[i].className == 'overlabel') {
			// Skip labels that do not have a named association
			// with another field.
			id = labels[i].htmlFor || labels[i].getAttribute('for');
			if (!id || !(field = document.getElementById(id))) {
				continue;
			}
			// Change the applied class to hover the label
			// over the form field.
			labels[i].className = 'overlabel-apply';
			// Hide any fields having an initial value.
			if (field.value !== '') {
				hideLabel(field.getAttribute('id'), true);
			}
			// Set handlers to show and hide labels.
			field.onfocus = function () {
				hideLabel(this.getAttribute('id'), true);
			};
			field.onblur = function () {
				if (this.value === '') {
					hideLabel(this.getAttribute('id'), false);
				}
			};
			// Handle clicks to LABEL elements (for Safari).
			labels[i].onclick = function () {
				var id, field;
				id = this.getAttribute('for');
				if (id && (field = document.getElementById(id))) {
					field.focus();
				}
			};
		}
	}
};
function hideLabel (field_id, hide) {
	var field_for;
	var labels = document.getElementsByTagName('label');
	for (var i = 0; i < labels.length; i++) {
		field_for = labels[i].htmlFor || labels[i].getAttribute('for');
		if (field_for == field_id) {
			labels[i].style.textIndent = (hide) ? '-1000px' : '0px';
			return true;
		}
	}
}
window.onload = function () {
	setTimeout(initOverLabels, 50);
};



/*
* Create the new window
*/
function openInNewWindow(e) {
	var event;
	if (!e) event = window.event;
	else event = e;
	// Abort if a modifier key is pressed
	if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) {
		return true;
	}
	else {
		// Change "_blank" to something like "newWindow" to load all links in the same new window
		var newWindow = window.open(this.getAttribute('href'), '_blank');
		if (newWindow) {
			if (newWindow.focus) {
				newWindow.focus();
			}
			return false;
		}
		return true;
	}
}
/*
* Add the openInNewWindow function to the onclick event of links with a class name of "new-window"
*/
function getNewWindowLinks() {
	// Check that the browser is DOM compliant
	if (document.getElementById && document.createElement && document.appendChild) {
		// Change this to the text you want to use to alert the user that a new window will be opened
		// var strNewWindowAlert = " (opens in a new window)";
		// Find all links
		var links = document.getElementsByTagName('a');
		// var objWarningText;
		var link;
		for (var i = 0; i < links.length; i++) {
			link = links[i];
			// Find all links with a class name of "new-window"
			if (/\bnew\-window\b/.test(link.className)) {
				// Create an em element containing the new window warning text and insert it after the link text
				// objWarningText = document.createElement("em");
				// objWarningText.appendChild(document.createTextNode(strNewWindowAlert));
				// link.appendChild(objWarningText);
				link.onclick = openInNewWindow;
			}
		}
		objWarningText = null;
	}
}
//addEvent(window, 'load', getNewWindowLinks);



/*
* Checks all checkboxes
*/
function checkAll(Checkbox, selector) {
	var checks = document.getElementsByName(Checkbox);
	var boxLength = checks.length;
	var totalChecked = 0;
	for ( i=0; i < boxLength; i++ ) {
		if ( checks[i].checked == true ) {
			allChecked = true;
			continue;
		} else {
			allChecked = false;
			break;
		}
	}
	if ( allChecked == false ) {
		for ( i=0; i < boxLength; i++ ) {
			checks[i].checked = true;
		}
		allChecked = true;
		document.getElementById(selector).checked = true;
	} else {
		for ( i=0; i < boxLength; i++ ) {
			checks[i].checked = false;
		}
		allChecked = false;
		document.getElementById(selector).checked = false;
	}
}

function toggleSearchText(element,searchText) {
	
	if(element.value == "") {
		element.value = searchText;
	} else if(element.value == searchText) {
		element.value = "";
	}
}

function searchForm(defaultText,defaultColor,toggleColor,formId,toggleFieldId) {
	
	form = document.getElementById(formId);
	toggleField = document.getElementById(toggleFieldId);
	
	toggleField.value = defaultText;
	
	foc = "toggleSearchText(this,'" + defaultText + "');";
	blu = "toggleSearchText(this,'" + defaultText + "');";
	submit = 'if(document.getElementById(\'' + toggleFieldId + '\').value == \'' + defaultText + '\' || document.getElementById(\'' + toggleFieldId + '\').value == \'' + defaultText + '\') { document.getElementById(\'' + toggleFieldId + '\').value = \'\';}';
	
	if(defaultColor != "") {
		foc = foc + ' this.style.color = \'' + defaultColor + '\';';
	}
	
	if(toggleColor != "") {
		blu = blu + ' this.style.color = \'' + toggleColor + '\';';
	}
	
	focu = document.createAttribute("onFocus");
	focu.nodeValue = foc;	
	bluu = document.createAttribute("onBlur");
	bluu.nodeValue = blu;
	sub = document.createAttribute("onSubmit");
	sub.nodeValue = submit;
	
	toggleField.setAttributeNode(focu);
	toggleField.setAttributeNode(bluu);
	form.setAttributeNode(sub);
}


///lixlpixel Javascript tooltips http://lixlpixel.org/javascript-tooltips/
// position of the tooltip relative to the mouse in pixel //
var offsetx = 0;
var offsety =  -63;

var ie5 = (document.getElementById && document.all);
var ns6 = (document.getElementById && !document.all);
var ua = navigator.userAgent.toLowerCase();
var isapple = (ua.indexOf('applewebkit') != -1 ? 1 : 0);

function getmouseposition(e)
{
	if(document.getElementById)
	{
		var iebody=(document.compatMode &&
		document.compatMode != 'BackCompat') ?
		document.documentElement : document.body;
		pagex = (isapple == 1 ? 0:(ie5)?iebody.scrollLeft:window.pageXOffset);
		pagey = (isapple == 1 ? 0:(ie5)?iebody.scrollTop:window.pageYOffset);
		mousex = (ie5)?event.x:(ns6)?clientX = e.clientX:false;
		mousey = (ie5)?event.y:(ns6)?clientY = e.clientY:false;

		var lixlpixel_tooltip = document.getElementById(eleID);
		lixlpixel_tooltip.style.left = (mousex+pagex+offsetx) + 'px';
		lixlpixel_tooltip.style.top = (mousey+pagey+offsety) + 'px';
	}
}
function tooltipShow(elementId,ac)
{
	ele = document.getElementById(elementId);
	ele.style.display = "block";

	eleID = elementId;

	height = ele.offsetHeight;

	offsety = -(height+20);

	if(!document.getElementById(elementId)) return false;
	var lixlpixel_tooltip = document.getElementById(elementId);
	lixlpixel_tooltip.style.display = 'block';
	document.onmousemove = getmouseposition;
}
function tooltipExit(elementId)
{
	document.getElementById(elementId).style.display = 'none';
}

function prepareTextElement(checkbox, elementId, mode) {
    element = document.getElementById(elementId);
    if (checkbox.checked && mode == 'disable' ) {
        element.disabled = true;
        element.className = element.className + ' disabled';
    } else if (checkbox.checked && mode == 'enable' ) {
        element.disabled = false;
        element.className = 'default';
    } else if (!checkbox.checked && mode == 'disable' ) {
        element.disabled = false;
        element.className = 'default';
    } else if (!checkbox.checked && mode == 'enable' ) {
        element.disabled = true;
        element.className = element.className + ' disabled';
    }
}
