// JavaScript Document  



function substr_count( haystack, needle, offset, length ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   bugfixed by: Onno Marsman
    // *     example 1: substr_count('Kevin van Zonneveld', 'e');
    // *     returns 1: 3
    // *     example 2: substr_count('Kevin van Zonneveld', 'K', 1);
    // *     returns 2: 0
    // *     example 3: substr_count('Kevin van Zonneveld', 'Z', 0, 10);
    // *     returns 3: false
 
    var pos = 0, cnt = 0;
 
    haystack += '';
    needle += '';
    if(isNaN(offset)) offset = 0;
    if(isNaN(length)) length = 0;
    offset--;
 
    while( (offset = haystack.indexOf(needle, offset+1)) != -1 ){
        if(length > 0 && (offset+needle.length) > length){
            return false;
        } else{
            cnt++;
        }
    }
 
    return cnt;
}

/* FROM: http://blog.firetree.net/2005/07/04/javascript-find-position/ */

function findPosX(obj)
{
var curleft = 0;
if(obj.offsetParent)
	while(1) 
	{
	  curleft += obj.offsetLeft;
	  if(!obj.offsetParent)
		break;
	  obj = obj.offsetParent;
	}
else if(obj.x)
	curleft += obj.x;
return curleft;
}

function findPosY(obj)
{
var curtop = 0;
if(obj.offsetParent)
	while(1)
	{
	  curtop += obj.offsetTop;
	  if(!obj.offsetParent)
		break;
	  obj = obj.offsetParent;
	}
else if(obj.y)
	curtop += obj.y;
return curtop;
}


function showhide(switch_elem,target_elems,show_text,hide_text,limit) {
	
	if(!target_elems) {
		//alert('no targets');
		return false;	
	}
	
	if (!target_elems.length) {
		
		var arr = new Array();
		
		arr[0] = target_elems;
		
		target_elems = arr;
			
	} 
	
		
	for(i=0; i<target_elems.length; i++) {
		
		if(limit) {
			if(limit < i) {
				break;
			}
		}
		target_elem = target_elems[i];
		
		if(target_elem.style) {
			
			if(target_elem.style.display == 'none') {
				//target_elem.show();
				Effect.SlideDown(target_elem.id, { duration: 0.7 });

				switch_elem.innerHTML = hide_text;
			} else {
				//target_elem.hide();
				Effect.SlideUp(target_elem.id, { duration: 0.7 });
				
				switch_elem.innerHTML = show_text;
			}
		}
	}
}

// Disables all other submit buttons (so they are not passed through POST via Ajax
// Page must be reloaded for the other buttons to reset themselves

function disableAllOtherSubmits(except) { 
// arg = EXCEPT for this submit button (presumably the clicked one)
	
	//alert('in dAS');
	
	inputs = $$('input');
	
	//alert(inputs);
	
	for(i=0; i<inputs.length; i++) {
		
		if( inputs[i] && inputs[i].type == 'submit') {
			//alert('found-a-submitbutton: '+inputs[i].value);
			
			if(inputs[i].value != except.value) {
				
				inputs[i].disabled = true;
				
			}
		}
	}

}


//selectAll
function selectAll(id_piece,toggle_me) {
	
	//substr_count( string haystack , string needle [, int offset [, int length]] )
	
	inputs = $$('input.checkbox');
	if(!inputs) {
		return false;
	}
	
	for(i=0; i< inputs.length; i++) {
		
		if (substr_count(inputs[i].getAttribute('id'),id_piece)) {
			
			inputs[i].checked = true;
			
			if(toggle_me) {
				
				var toggle_exists = true;
				var changeToggleText = 'Deselect All';
				
				if(toggle_me.innerHTML == 'Deselect All') {
					inputs[i].checked = false;
					changeToggleText = 'Select All';
				}
						
			
			}
		}
	}
	if(changeToggleText) {
		toggle_me.innerHTML = changeToggleText;	
	}
	
}





function setMaxLength() {
	var x = document.getElementsByTagName('textarea');
	var counter = document.createElement('div');
	counter.className = 'counter';
	for (var i=0;i<x.length;i++) {
		if ( x[i].getAttribute('maxlength') ) {
			var counterClone = counter.cloneNode(true);
			counterClone.relatedElement = x[i];
			counterClone.innerHTML =
			'<span class="chars_typed">0</span> / <span class="chars_max">'+x[i].getAttribute('maxlength')+' chars max</span>';
			
			x[i].parentNode.insertBefore(counterClone,x[i].nextSibling);
			x[i].relatedElement = counterClone.getElementsByTagName('span')[0];

			x[i].onkeydown = x[i].onchange = checkMaxLength;
			x[i].onkeydown();
		}
	}
}

function checkMaxLength() {
	var maxLength = this.getAttribute('maxlength');
	var currentLength = this.value.length;
	if (currentLength > maxLength)
		this.relatedElement.className = 'error'; //edit this class in your CSS file
	else
		this.relatedElement.className = '';
	this.relatedElement.firstChild.nodeValue = currentLength;
	// not innerHTML
}

//Pop-up windows
var win = null;
function NewWindow(mypage,myname,w,h,scroll,resize){
LeftPosition = (screen.width) ? (screen.width-w)/2 : 0;
TopPosition = (screen.height) ? (screen.height-h)/2 : 0;
settings =
'height='+h+',width='+w+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',resizable='+resize;

win = window.open(mypage,myname,settings)
}

/*
Auto tabbing script- By JavaScriptKit.com
http://www.javascriptkit.com
*/

function autotab(original,destination){
	if (original.getAttribute&&original.value.length==original.getAttribute("maxlength"))
	destination.focus()
}


function disableField(fieldname,disableIt) {
	
	fieldname.disabled = disableIt;
	
}

