/* AJAX Library 
		function $(e){if(typeof e=='string')e=document.getElementById(e);return e};
		function collect(a,f){var n=[];for(var i=0;i<a.length;i++){var v=f(a[i]);if(v!=null)n.push(v)}return n};
		
		ajax={};
		neoAjax.x=function(){try{return new ActiveXObject('Msxml2.XMLHTTP')}catch(e){try{return new ActiveXObject('Microsoft.XMLHTTP')}catch(e){return new XMLHttpRequest()}}};
		neoAjax.serialize=function(f){var g=function(n){return f.getElementsByTagName(n)};var nv=function(e){if(e.name)return encodeURIComponent(e.name)+'='+encodeURIComponent(e.value);else return ''};var i=collect(g('input'),function(i){if((i.type!='radio'&&i.type!='checkbox')||i.checked)return nv(i)});var s=collect(g('select'),nv);var t=collect(g('textarea'),nv);return i.concat(s).concat(t).join('&');};
		neoAjax.send=function(u,f,m,a){var x=neoAjax.x();x.open(m,u,true);x.onreadystatechange=function(){if(x.readyState==4){f(x.responseText);}};if(m=='POST')x.setRequestHeader('Content-type','application/x-www-form-urlencoded');x.send(a)};
		neoAjax.sendNoCache=function(u,f,m,a){u = u + (u.indexOf('?') < 0 ? '?' : '&') + new Date().getTime();var x=neoAjax.x();x.open(m,u,true);x.onreadystatechange=function(){if(x.readyState==4)f(x.responseText)};if(m=='POST')x.setRequestHeader('Content-type','application/x-www-form-urlencoded');x.send(a)};
		neoAjax.get=function(url,func){neoAjax.send(url,func,'GET')};
		neoAjax.getNoCache=function(url,func){url = url + (url.indexOf('?') < 0 ? '?' : '&') + new Date().getTime();neoAjax.send(url,func,'GET')};
		neoAjax.gets=function(url){var x=neoAjax.x();x.open('GET',url,false);x.send(null);return x.responseText};
		neoAjax.getsNoCache=function(url){url = url + (url.indexOf('?') < 0 ? '?' : '&') + new Date().getTime();var x=neoAjax.x();x.open('GET',url,false);x.send(null);return x.responseText};
		neoAjax.post=function(url,func,args){neoAjax.send(url,func,'POST',args)};
		neoAjax.postNoCache=function(url,func,args){neoAjax.sendNoCache(url,func,'POST',args)};
		neoAjax.update=function(url,elm){var e=$(elm);var f=function(r){e.innerHTML=r};neoAjax.get(url,f);};
		neoAjax.updateNoCache=function(url,elm){var e=$(elm);var f=function(r){e.innerHTML=r};neoAjax.getNoCache(url,f);};
		neoAjax.submit=function(url,elm,frm){var e=$(elm);var f=function(r){e.innerHTML=r};neoAjax.post(url,f,neoAjax.serialize(frm))};
		neoAjax.submitNoCache=function(url,elm,frm){var e=$(elm);var f=function(r){e.innerHTML=r};neoAjax.postNoCache(url,f,neoAjax.serialize(frm))};
		neoAjax.submitAjaxForm=function(url,frm){var f=function(r){};neoAjax.postNoCache(url,f,neoAjax.serialize(frm))};
	
/* AJAX Library  With TinyMCE
		neoAjax.sendWithTinyMCE=function(u,f,m,l,tiny,a){var x=neoAjax.x();x.open(m,u,true);x.onreadystatechange=function(){if(x.readyState==4){f(x.responseText); tiny(l);}};if(m=='POST')x.setRequestHeader('Content-type','application/x-www-form-urlencoded');x.send(a)};
		neoAjax.getNoCacheWithTinyMCE=function(url,func,l,tiny){url = url + (url.indexOf('?') < 0 ? '?' : '&') + new Date().getTime();neoAjax.sendWithTinyMCE(url,func,'GET',l,tiny)};
		neoAjax.updateNoCacheWithTinyMCE=function(url,elm,l){var e=$(elm);var f=function(r){e.innerHTML=r}; var tiny=function(l){if(l)neoAjax.loadAjaxTinyMCE();};neoAjax.getNoCacheWithTinyMCE(url,f,l,tiny);};

/* AJAX TinyMCEFunctions 
neoAjax.loadAjaxTinyMCE = function(){tinyMCE.init({mode : "textareas",theme : "advanced",plugins : "layer,table,advhr,searchreplace,contextmenu,paste,directionality,noneditable,visualchars,nonbreaking,xhtmlxtras,template",
 		theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,formatselect,fontselect,fontsizeselect",
		theme_advanced_buttons2 : "pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,forecolor,backcolor,|,sub,sup,charmap",
		theme_advanced_buttons3 : "hr,removeformat,visualaid",
		theme_advanced_toolbar_location : "top"	,
		setup : function(ed) {ed.onChange.add(function(ed) {tinyMCE.triggerSave();});}	
	});	
	
}
*/
/* AJAX Library */
		neoAjax={};
		neoAjax.find=function(e){if(typeof e=='string')e=document.getElementById(e);return e};
		neoAjax.collect=function(a,f){var n=[];for(var i=0;i<a.length;i++){var v=f(a[i]);if(v!=null)n.push(v)}return n};
		
		
		neoAjax.x=function(){try{return new ActiveXObject('Msxml2.XMLHTTP')}catch(e){try{return new ActiveXObject('Microsoft.XMLHTTP')}catch(e){return new XMLHttpRequest()}}};
		neoAjax.serialize=function(f){var g=function(n){return f.getElementsByTagName(n)};var nv=function(e){if(e.name)return encodeURIComponent(e.name)+'='+encodeURIComponent(e.value);else return ''};var i=neoAjax.collect(g('input'),function(i){if((i.type!='radio'&&i.type!='checkbox')||i.checked)return nv(i)});var s=neoAjax.collect(g('select'),nv);var t=neoAjax.collect(g('textarea'),nv);return i.concat(s).concat(t).join('&');};
		neoAjax.send=function(u,f,m,a){var x=neoAjax.x();x.open(m,u,true);x.onreadystatechange=function(){if(x.readyState==4){f(x.responseText);}};if(m=='POST')x.setRequestHeader('Content-type','application/x-www-form-urlencoded');x.send(a)};
		neoAjax.sendNoCache=function(u,f,m,a){u = u + (u.indexOf('?') < 0 ? '?' : '&') + new Date().getTime();var x=neoAjax.x();x.open(m,u,true);x.onreadystatechange=function(){if(x.readyState==4)f(x.responseText)};if(m=='POST')x.setRequestHeader('Content-type','application/x-www-form-urlencoded');x.send(a)};
		neoAjax.get=function(url,func){neoAjax.send(url,func,'GET')};
		neoAjax.getNoCache=function(url,func){url = url + (url.indexOf('?') < 0 ? '?' : '&') + new Date().getTime();neoAjax.send(url,func,'GET')};
		neoAjax.gets=function(url){var x=neoAjax.x();x.open('GET',url,false);x.send(null);return x.responseText};
		neoAjax.getsNoCache=function(url){url = url + (url.indexOf('?') < 0 ? '?' : '&') + new Date().getTime();var x=neoAjax.x();x.open('GET',url,false);x.send(null);return x.responseText};
		neoAjax.post=function(url,func,args){neoAjax.send(url,func,'POST',args)};
		neoAjax.postNoCache=function(url,func,args){neoAjax.sendNoCache(url,func,'POST',args)};
		neoAjax.update=function(url,elm){var e=neoAjax.find(elm);var f=function(r){e.innerHTML=r};neoAjax.get(url,f);};
		neoAjax.updateNoCache=function(url,elm){var e=neoAjax.find(elm);var f=function(r){e.innerHTML=r};neoAjax.getNoCache(url,f);};
		neoAjax.submit=function(url,elm,frm){var e=neoAjax.find(elm);var f=function(r){e.innerHTML=r};neoAjax.post(url,f,neoAjax.serialize(frm))};
		neoAjax.submitNoCache=function(url,elm,frm){var e=neoAjax.find(elm);var f=function(r){e.innerHTML=r};neoAjax.postNoCache(url,f,neoAjax.serialize(frm))};
		neoAjax.submitAjaxForm=function(url,frm){var f=function(r){};neoAjax.postNoCache(url,f,neoAjax.serialize(frm))};
	
		neoAjax.toggleDisplayDiv=function(divId){ var e = neoAjax.find(divId);if (e.style.display == "none") {e.style.display = "block";} else if (e.style.display == "block") {e.style.display = "none";}}		
		neoAjax.showDiv=function(divId){ var e = neoAjax.find(divId); e.style.display = "block"; }
		neoAjax.hideDiv=function(divId){ var e = neoAjax.find(divId); e.style.display = "none"; }	
		
		neoAjax.emptyDiv=function(elm){neoAjax.find(elm).innerHTML='<center><br/><img src="img/ajax/lc-loader.gif"/><br/><br/><h1>Loading</h1><br/><h2>Please wait</h2></center>';}
		
//		neoAjax.toggleDisabled=function(eId) {
//            var el = neoAjax.find(eId);
//            try {
//                el.disabled = el.disabled ? false : true;
//            }
//            catch(E){}
//            
//            if (el.childNodes && el.childNodes.length > 0) {
//                for (var x = 0; x < el.childNodes.length; x++) {
//                    neoAjax.toggleDisabled(el.childNodes[x]);
//                }
//            }
//        }
//            
//        neoAjax.disableElement=function(eId) {
//            var el = neoAjax.find(eId);
//            try {
//                el.disabled = true;
//            }
//            catch(E){}
//            
//            if (el.childNodes && el.childNodes.length > 0) {
//                for (var x = 0; x < el.childNodes.length; x++) {
//                    neoAjax.disableElement(el.childNodes[x]);
//                }
//            }
//        }
//            
//        neoAjax.enableElement=function(eId) {
//            var el = neoAjax.find(eId);
//            try {
//                el.disabled = false;
//            }
//            catch(E){}
//            
//            if (el.childNodes && el.childNodes.length > 0) {
//                for (var x = 0; x < el.childNodes.length; x++) {
//                    neoAjax.enableElement(el.childNodes[x]);
//                }
//            }
//        }
		
/* AJAX Library  With TinyMCE*/
		neoAjax.sendWithTinyMCE=function(u,b,m,l,tiny,a){var x=neoAjax.x();x.open(m,u,true);x.onreadystatechange=function(){if(x.readyState==4){b(x.responseText); tiny(l);}};if(m=='POST')x.setRequestHeader('Content-type','application/x-www-form-urlencoded');x.send(a)};
		neoAjax.getNoCacheWithTinyMCE=function(url,func,l,tiny){url = url + (url.indexOf('?') < 0 ? '?' : '&') + new Date().getTime();neoAjax.sendWithTinyMCE(url,func,'GET',l,tiny)};
		neoAjax.updateNoCacheWithTinyMCE=function(url,elm,l){var e=neoAjax.find(elm);var b=function(r){e.innerHTML=r}; var tiny=function(l){if(l)neoAjax.loadAjaxTinyMCE();};neoAjax.getNoCacheWithTinyMCE(url,b,l,tiny);};
		neoAjax.updateNoCacheWithTinyMCEHTML=function(url,elm,l){var e=neoAjax.find(elm);var b=function(r){e.innerHTML=r}; var tiny=function(l){if(l)neoAjax.loadAjaxTinyMCEHTML();};neoAjax.getNoCacheWithTinyMCE(url,b,l,tiny);};

/* AJAX TinyMCEFunctions */
neoAjax.loadAjaxTinyMCE = function(){tinyMCE.init({mode : "textareas",theme : "advanced",plugins : "layer,table,advhr,searchreplace,contextmenu,paste,directionality,noneditable,visualchars,nonbreaking,xhtmlxtras,template,print",
 		theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,formatselect,fontselect,fontsizeselect",
		theme_advanced_buttons2 : "pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,forecolor,backcolor,|,sub,sup,charmap",
		theme_advanced_buttons3 : "hr,removeformat,visualaid,print",
		theme_advanced_toolbar_location : "top"	
		
	});	
	
}

neoAjax.loadAjaxTinyMCEHTML = function(){tinyMCE.init({mode : "textareas",theme : "advanced",plugins : "layer,table,advhr,searchreplace,contextmenu,paste,directionality,noneditable,visualchars,nonbreaking,xhtmlxtras,template,print",
 		theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,formatselect,fontselect,fontsizeselect",
		theme_advanced_buttons2 : "pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,forecolor,backcolor,|,sub,sup,charmap",
		theme_advanced_buttons3 : ",undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,hr,removeformat,visualaid,print",
		theme_advanced_toolbar_location : "top"	

	});	
	
}


/* Proto Type */
neoAjax.loadDiv=function(divId, url){ new Ajax.Updater(divId,url,{method: 'get',evalScripts:true});}
neoAjax.loadDivOnComplete=function(moduleName, url, complete){ new Ajax.Updater(moduleName,url,{method: 'get',evalScripts:true, onComplete: function(transport){ complete();} });};

/* Animated loading div */ 
neoAjax.showLoadingDiv=function(elm){ var div=neoAjax.find(elm);div.innerHTML="<center><img src='img/ajax/lc-loader.gif'/><h1>Loading</h1><h2>Please wait</h2><br/></center>";}


neoAjax.toggleEditor=function(id) {
	
	if (!tinyMCE.get(id))
		tinyMCE.execCommand('mceAddControl', false, id);
	else
		tinyMCE.execCommand('mceRemoveControl', false, id);
	
}

neoAjax.updateNeo=function(url,elm){
		var e1=neoAjax.find(elm);
		var f=function(r){
		try {
			e1.innerHTML=r
		}catch (e) {
			// IE fails 
			var wrappingDiv = document.createElement('div');
			wrappingDiv.innerHTML = r;
			e1.appendChild(wrappingDiv);
		};
	}
	
	neoAjax.get(url,f);
};

neoAjax.triggerSaveViaToggle=function(id){
	neoAjax.toggleEditor(id);
	neoAjax.toggleEditor(id);
}

/* Limit text in text area */ 
neoAjax.limitText=function (limitField, limitCount, limitNum) {
	if (limitField.value.length > limitNum) {
		limitField.value = limitField.value.substring(0, limitNum);
	} else {
		limitCount.value = limitNum - limitField.value.length;
	}
}

