/**
* @copyright 2007 Impact Proximity
* @author Jerome S. Conde
* @note encapsulate all handlers in this function call
*/
if(typeof autoText == "undefined") var autoText = [];
ip$.registerHandlers(
	function() {
		ip$.assignFirstChild();
	},
	function() {
		ip$.externalLinks();
	},
	function() {
		var nav = ip$.getID("Navigation1");
		var pageBody = ip$.getTags(document,"body")[0];
		var tabs = ip$.getClass(document,"Tabs");
		if(tabs.length) nav.style.height = "auto";
		var navH = nav.offsetHeight;
		if(navH){
			navH += 30;
			if(navH <= 325 &&  tabs.length) nav.style.height = "325px";
			if(navH > 325 && navH <350) {
				ip$.addClass(pageBody,"Theme2");
				nav.style.height = "350px";
			}
			if(navH > 350 && navH <375) {
				ip$.addClass(pageBody,"Theme3");
				nav.style.height = "375px";
			}
			if(navH >= 375) {
				ip$.addClass(pageBody,"Theme4");
				nav.style.height = "415px";
			}
		}
	},
	/**
	*function to handle auto clear for some text boxes
	*with class name 'AutoClear'
	*/
	function() {
		var xEls = ip$.getClass(document,"AutoClear");
		for(var i=0;i<xEls.length;i++){
			autoText[i] = xEls[i].value;
			xEls[i].onfocus = function(){
				var xEls = ip$.getClass(document,"AutoClear");
				this.value == autoText[getIndex(this,xEls)] ? this.value = "" : null;
			}
			xEls[i].onblur = function(){
				var xEls = ip$.getClass(document,"AutoClear");
				this.value == "" ? this.value = autoText[getIndex(this,xEls)] : null;
			}
		}
	},
	/**
	*Function to handle hover effect on link image captions
	*/
	function() {
		var imgs = ip$.getTags(ip$.getID("Navigation1"),"IMG");
		for(var i=0,j=imgs.length;i<j;i++){
			imgs[i].parentNode.onmouseover = function(){
			setOpac(ip$.getTags(this,"IMG")[0],60);}
			imgs[i].parentNode.onmouseout = function(){
			setOpac(ip$.getTags(this,"IMG")[0],100);}
			if(/Selected/.test(imgs[i].parentNode.parentNode.className)){
				setOpac(imgs[i],60);
				imgs[i].parentNode.onmouseover = null;
				imgs[i].parentNode.onmouseout = null;
			}
		}
		
		function setOpac(oEl,opac){
			var objStyle = oEl.style;
			objStyle.opacity = (opac / 100);
			objStyle.MozOpacity = (opac / 100);
			objStyle.KhtmlOpacity = (opac / 100);
			objStyle.filter = "alpha(opacity=" + opac + ")";
		}
	},
	/**
	*function to handle side navigation, expanded indicator
	*styles supported on css
	*/
	function() {
		var LIs = ip$.getClass(ip$.getID("Navigation1"),"Selected");
		for(var i=0;i<LIs.length;i++){
				var x = ip$.getTags(LIs[i],"A")[0];
				var y = ip$.getTags(LIs[i],"IMG")[0];
				var z = ip$.getTags(LIs[i],"UL");
				var isNode = "";
				if(z.length > 0) isNode = "IsNode";
				if(!y) x.innerHTML = "<span class='"+ isNode +"'>" + x.innerHTML +"</span>";
		}
	},
	
	/**
	* function to handle Photo Gallery
	*/
	function() {
		var canvas = ip$.getClass(document,"Canvas");
		var preview = null;
		if(canvas.length){
			preview = canvas[0];
			preview.style.display = "none";
			var x = ip$.getTags(preview,"A")[0] || null;
			var y = ip$.getTags(preview,"IMG")[0] || null;
			if(x) {
				x.onclick = function(){
					preview.style.display = "none";
					previewImg.src = "/$Common/Image/Generic/AjaxLoader.gif";
					return false;
				}
				y.style.cursor = "pointer";
				y.onclick = x.onclick;
			}
			var enlarges = ip$.getClass(document,"Enlarge") || [];
			var thumbs = ip$.getClass(document,"Thumbnail") || [];
			var previewImg = ip$.getTags(preview,"IMG")[0] || null;
			previewImg.src = "/$Common/Image/Generic/AjaxLoader.gif";
			if(enlarges.length){
				enlarges = enlarges.concat(thumbs);
				for(var i=0,j=enlarges.length;i<j;i++){
					enlarges[i].onclick = function(){
						previewImg.src = this.href;
						preview.style.display = "block";
						return false;
					}
				}
			}		
		}
	},
	/**
	*function to handle input filters
	*/
	function() {
		inputFilterHandler();
	}
);


function getIndex(oEl,arrRef){
	for(var i=0;i< arrRef.length;i++){
		if(arrRef[i] == oEl) return i;
	}
}

function getStyledValue(el, style) {
  if(!document.getElementById) return;
		var value = el.style[toCamelCase(style)];
    if(!value)
      if(document.defaultView)
        value = document.defaultView.getComputedStyle(el, "").getPropertyValue(style);
      else if(el.currentStyle) value = el.currentStyle[toCamelCase(style)];
    return value;
}
/** toCamelCase(input)
 * Converts string input to a camel cased version of itself.
 * For example:
 * toCamelCase("z-index"); // returns zIndex
 * toCamelCase("border-bottom-style"); // returns borderBottomStyle.
 */
function toCamelCase(s) {
	for(var exp = toCamelCase.exp; 
		exp.test(s); s = s.replace(exp, RegExp.$1.toUpperCase()) );
	return s;
}
toCamelCase.exp = /-([a-z])/;


/**
 *Handler for INPUT disabling and filters
 */
function inputFilterHandler(){
	var disableInputs = ip$.getClass(document,"Disable");
	var digitInputs = ip$.getClass(document,"Digit");
	var alphaNumerics = ip$.getClass(document,"AlphaNumerics");
	for(var i = 0;i < disableInputs.length; i++){
		if(disableInputs[i].tagName == "INPUT"){
			disableInputs[i].onkeydown = function(e){
				var code;
				if (!e) var e = window.event;
				if (e.keyCode) code = e.keyCode;
				code = e.charCode ? e.charCode : e.keyCode;
				var acceptedCode = (code == 9 || code == 16 || code == 36 || code == 37 || code == 39);
				if (acceptedCode) return true;
				else return false;
			}
		}
	}
	for(var i = 0;i < digitInputs.length; i++){
		if(digitInputs[i].tagName == "INPUT"){
			digitInputs[i].onkeypress = function(e){
				var code;
				if (!e) var e = window.event;
				//if (e.keyCode) code = e.keyCode;
				//else if (e.which) code = e.which;
				code = e.charCode ? e.charCode : e.keyCode;
				//alert(code);
				var acceptedCode = (code > 47 && code < 58);
				//acceptedCode = acceptedCode || (code > 95 && code < 106);
				acceptedCode = acceptedCode || code == 32 || code == 8 || code == 9 || code == 16 || code == 36 || code == 37 || code == 39 || code == 46;
				if (acceptedCode) return true;
				else {
					var loc = window.location.toString();
					var msgAr = "يرجى إستعمال الأرقام فقط.";
					var msgEn = "Only numbers allowed.";
					if(loc.indexOf("en_gb") > -1){
						alert(msgEn);
					}
					else{
						alert(msgAr);
					}
					return false;
				}
			}
		}
	}
	for(var i = 0;i < alphaNumerics.length; i++){
		if(alphaNumerics[i].tagName == "INPUT"){
			alphaNumerics[i].onkeypress = function(e){
				var code;
				if (!e) var e = window.event;
				//if (e.keyCode) code = e.keyCode;
				//else if (e.which) code = e.which;
				code = e.charCode ? e.charCode : e.keyCode;
				//alert(code);
				var acceptedCode = (code > 47 && code < 59);
				acceptedCode = acceptedCode || (code > 96 && code < 123);
				acceptedCode = acceptedCode || (code > 64 && code < 91);
				acceptedCode = acceptedCode || code == 32 || code == 8 || code == 9 || code == 16 || code == 36 || code == 37 || code == 39 || code == 46;
				acceptedCode = acceptedCode || code == 64;//@
				if (acceptedCode) return true;
				else {
					var loc = window.location.toString();
					var msgAr = "يرجى إستعمال الأحرف الإنجليزية أو الأرقام فقط.";
					var msgEn = "Only numbers and letters allowed.";
					if(loc.indexOf("en_gb") > -1){
						alert(msgEn);
					}
					else{
						alert(msgAr);
					}
					return false;
				}
			}
		}
	}
}
