// ##### ##### ##### ##### ##### ##### ##### ##### ##### #####
// ##### ##### ##### ##### ##### ##### ##### ##### ##### #####
// ##### Script Written by UTU Software Development Team #####
// ##### ##### ##### ##### ##### ##### ##### ##### ##### #####
// ##### ##### ##### ## www.utuonline.com ## ##### ##### #####
// ##### ##### ##### ##### # UTU 2005  ##### ##### ##### #####
// ##### ##### ##### ##### ##### ##### ##### ##### ##### #####

if(document.all)
{	
	// validate Text button content 
	// check for content length
	// check for valid language entry
	// check for special characters (to remove / replace)
	function validateTB()
	{
		var objTag,objValueLength,objTitle,maxLength,objValue,objInnerHTML;
		//alert(event.srcElement.type);
		if(event.srcElement.type!=null)
		{
		
			if(event.srcElement.type.toString()=="textarea")
			{
				objTag 			= event.srcElement;
				objTitle 		= objTag.title;
				objValueLength 	= objTag.value.length;
				objValue 		= objTag.value;
				objInnerHTML 	= objTag.innerHTML;
				
				maxLength = objTitle.substring(objTitle.lastIndexOf(" ",objTitle.length-1));
				
				if(maxLength<objValueLength)
				{
					alert("Max Length is: "+maxLength);
					objTag.value = objTag.value.substring(0,maxLength);
				}
				replaceSpecialChar(objTag)
			}
			if(event.srcElement.type.toString()=="text")
			{
				objTag = event.srcElement;
				replaceSpecialChar(objTag)
				checkTextLang(objTag);
			}
		}
	}
	
	// check if control name end with _ar entries must be in arabic
	function checkTextLang(txtTag)
	{
		var strTmpTxtTagName = txtTag.name;
		strTmpTxtTagName = strTmpTxtTagName.toLowerCase();
		if(strTmpTxtTagName.substring(strTmpTxtTagName.length-3,strTmpTxtTagName.length) == "_ar")
			ValidateCharLang (txtTag,0);
		else
			ValidateCharLang (txtTag,1);
	}
	
	// check the control language from its direction and remove unwanted characters (other languages and special characters)
	function ValidateCharLang (element,direction)
	{	
		var ElementToValidate = element;
		var ElementString   = ElementToValidate.value;
		var ElementLength	= ElementString.length;
		for(i=0;i<ElementLength;i++)
		{
			var chCode = ElementString.charCodeAt(i);
			//alert(chCode);
			var res;
			if(direction == 1)
				res = IsEnglish(chCode);
			else
				res = IsArabic(chCode);

			if(!res)
				element.value = element.value.replace(ElementString.charAt(i),"");	
		}		
		return res;
	}			

	// check if the character map the Arabic characters code range 
	function  IsArabic(chi)
	{
		if((chi >= 1536 && chi <= 1791) || (chi >= 47 && chi <=58)||chi == 95 || chi == 32 || chi == 40 || chi == 41 || chi == 64 || chi == 46)
		return 1;
		else
		return 0;
	}

	// check if the character map the English characters code range 
	function  IsEnglish(chi)
	{
		if((chi >= 97 && chi <= 122) || (chi >= 65 && chi <= 90) || (chi >= 47 && chi <=58)||chi == 95|| chi == 32 ||chi == 40|| chi == 41 || chi == 64 || chi == 46)
		return 1;
		else
		return 0;
	}			

	// replace/remove unwanted characters
	function replaceSpecialChar(txtTag)
	{
		var strSpecial = '"\\\'<>[]*~!$%^&;?\|,';
		switch(txtTag.type.toString())
		{
			// Special Characters replacment in text area
			case ("textarea"):
				if(txtTag.innerHTML.indexOf("<",0)>=0)
					txtTag.innerHTML = txtTag.innerHTML.replace("<","&lt;");
				if(txtTag.innerHTML.indexOf(">",0)>=0)
					txtTag.innerHTML = txtTag.innerHTML.replace(">","&gt;");
				if(txtTag.innerHTML.indexOf("'",0)>=0)
					txtTag.innerHTML = txtTag.innerHTML.replace("'","&#8217;");
				if(txtTag.innerHTML.indexOf("[",0)>=0)
					txtTag.innerHTML = txtTag.innerHTML.replace("[","&#0091;");
				if(txtTag.innerHTML.indexOf("]",0)>=0)
					txtTag.innerHTML = txtTag.innerHTML.replace("]","&#0093;");
			break;
		
   			// Special Characters removal from text box
			case("text"):
				var bSpecialCharFound = false;
				for(i=0;i<txtTag.value.length;i++)
				{
					if(strSpecial.indexOf(txtTag.value.substring(i,i+1),0)>=0)
					{
						bSpecialCharFound = true;
						txtTag.value = txtTag.value.replace(txtTag.value.substring(i,i+1),"");
						i--;
					}
				}		
				if(bSpecialCharFound)
					alert("Such characters are not allowed:\n"+strSpecial);					
			break;
		}	
	}
	
	// calling Text Button Validator in cases of Key up , Key down , mouse out
	document.documentElement.onkeyup = validateTB;
	document.documentElement.onkeydown = validateTB;
	document.documentElement.onmouseout = validateTB;
}
//dynamic images

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}


// ##### ##### ##### ##### ##### ##### ##### ##### ##### #####
// ##### ##### ##### ##### ##### ##### ##### ##### ##### #####
// ##### Script Written by UTU Software Development Team #####
// ##### ##### ##### ##### ##### ##### ##### ##### ##### #####
// ##### ##### ##### ## www.utuonline.com ## ##### ##### #####
// ##### ##### ##### ##### # UTU 2005  ##### ##### ##### #####
// ##### ##### ##### ##### ##### ##### ##### ##### ##### #####

// Set page title 
//document.title = ".::International Modern Hospital::.";

// Redirect browser to passed url
function urlRedirection(gotourl){
	location.href=gotourl;
}
// Validate File Types
function validateUploadedFiles(source,args){
//alert(document.getElementById("fu_Upload").value);
	if(document.getElementById("fu_Upload").value.toUpperCase().indexOf(".EXE",0)>-1){
		args.IsValid = false;
		return false;
	}
	return false;

}

// Opens passed url in external browser as a popup scrollable resizable menu-less window
function openExWindow(url,width,height,lpos,tpos,scrol,resize,myhandle){
	mywin = open(url,myhandle,"status=0,menubar=0,scrollbars="+scrol+",resizable="+resize+",left="+lpos+",top="+tpos+",width="+width+",height="+height);
	mywin.focus();
}

// used in layers management
//reloads the window if Nav4 resized
function MM_reloadPage(init) {  
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}

// used in layers management
MM_reloadPage(true);

// used in layers management
//v4.01
function MM_findObj(n, d) { 
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

// used in layers management
//v6.0
function MM_showHideLayers() { 
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}
	
var i=255;
var globalobj;
	
// used in layers management
function fadeIn(){
	globalobj.style.color="rgb("+i+","+i+","+i+")";
	i=i-5;;
	if(i==0){
	i=255;
		return;
	}
	setTimeout("fadeIn()",1);
}

// used in layers management
function activate(obj){
	globalobj = obj;
	
	obj.style.top=window.event.clientY;
	obj.style.left=window.event.clientX+10;
	
	obj.style.visibility = 'visible';
	fadeIn();
}

// used in layers management
function deactivate(obj){
	obj.style.visibility = 'hidden';
}

