function validateForms(){
	var forms = document.getElementsByTagName('form');
	for(i=0; i<forms.length; i++){
		if(forms[i].className.match('validate')){
			new Validation(forms[i].id);
		}
	}
}

function toogleLink(){
	var anchors = document.getElementsByTagName('a');
	
	for (var i=0; i<anchors.length; i++){
		var anchor = anchors[i];
		
		var relAttribute = String(anchor.getAttribute('rel'));
		var anchorClass =  String(anchor.getAttribute('class'))
		
		if (relAttribute && anchorClass.match("show")){
		
		
			anchor.onclick = function () {
				var relAttribute = String(this.getAttribute('rel'));
				var desc = $(relAttribute);
				
				if(desc)				
				if(Element.hasClassName(desc,"hide")){
					Element.removeClassName(desc,"hide");
					//new Effect.BlindDown(relAttribute);
					
				}
				else{
					//new Effect.BlindUp(relAttribute);
					
					Element.addClassName(desc,"hide");
				}
				
				return false;
			}
		}
	}
}

function getElementsbyClass(className){
	var items = document.getElementsByTagName('*');
	var classItems = new Array();

	for (var i=0; i<items.length; i++){
		var item = items[i];
		if(item.className.match(className)){
			classItems.push(item);
			
		}
	}
	return classItems;
}

function getChildrenByClass(parentItem,className){
	var items = parentItem.getElementsByTagName('*');
	var classItems = new Array();

	for (var i=0; i<items.length; i++){
		var item = items[i];
		if(item.className.match(className)){
			classItems.push(item);
			
		}
	}
	return classItems;
}

function check(obj,item){
	if(isChecked()){
		if(!isOthersChecked(obj)){
			
			//new Effect.BlindDown(item);
			Element.removeClassName(item,"hide");
			toogleChildrenClass(item,'isRequired','required');
		}
	}
	else{
		
		//new Effect.BlindUp(item);
		Element.addClassName(item,"hide");
		toogleChildrenClass(item,'required','isRequired');
		
	}
}

function isChecked(){

	var checkItems = getElementsbyClass('toogleCheck');
	
	var checked = false;
	
	for(i=0; i< checkItems.length; i++){
		if(checkItems[i].type == 'checkbox' || checkItems[i].type == 'radio'){
			if(checkItems[i].checked)
				var checked= true;
		}
	}

	return checked;
}

function toogleChildrenClass(parent,from,to){
	var reqItems = getChildrenByClass(parent,from);
		for(i=0; i<reqItems.length;i++){
			Element.removeClassName(reqItems[i],from);
			Element.addClassName(reqItems[i],to);
	}
}

function isOthersChecked(current){

	var checkItems = getElementsbyClass('toogleCheck');
	
	var checked = false;
	
	for(i=0; i< checkItems.length; i++){
		if(checkItems[i].type == 'checkbox' || checkItems[i].type == 'radio')
			if(checkItems[i].checked && checkItems[i] != current){
				var checked= true;
			}
	}

	return checked;
}


function toogleCheck(){
	
	var checkItems = getElementsbyClass('toogleCheck');
	if(checkItems.length==0)
		return;

	var elems = document.getElementsByTagName('*');
	var targetElems = new Array();
	
	for (var i=0; i<elems.length; i++){
		var elem = elems[i];
		
		var elemClass=elem.className;
		if(elemClass){
				
			if(elemClass.match("toogleCheckTarget")){
				
				if(!isChecked()){
					//new Effect.BlindUp(elem,{duration:0.1});
					Element.addClassName(elem,"hide");
					toogleChildrenClass(elem,'required','isRequired');
				}
				targetElems.push(elem);
			}
		}
	}
	
	
	for(i=0; i< checkItems.length; i++){

		
		checkItems[i].onclick = function () {
			
			for(j=0; j<targetElems.length; j++){
				check(this,targetElems[j]);
			}	
		}
		
		if(checkItems[i].type == 'radio'){
			var radioItems = getChildrenByClass(checkItems[i].parentNode.parentNode,'checkbox');
			
			for(j=0; j<radioItems.length; j++){
			if(radioItems[j] != checkItems[i])
				radioItems[j].onclick = function () {
				
			
					for(k=0; k<targetElems.length; k++){
						check(checkItems[i],targetElems[k]);
					}	
				}
			}
		}		
	}
}

function loadToogle(){
	toogleCheck();
	toogleLink();
	
	//more items to be added

}

Event.observe(window, 'load', loadToogle, false);
Event.observe(window, 'load', validateForms, false);
