
	function Utilities(){}
	
	Utilities.HandleTabSelection = function(CurentTab)
	{
			  if(CurentTab){
			  
				 var AllTabs = CurentTab.parentNode.getElementsByTagName(CurentTab.nodeName);
				 if(AllTabs && AllTabs.length > 0){
				 
					for(var i = 0; i < AllTabs.length; i++){
					
						//alert(AllTabs[i].id);
						if(CurentTab == AllTabs[i]){
						
						   AllTabs[i].className = 'SelectedTab';
						}
						else{
						
						   AllTabs[i].className = '';
						}
					}
				 }
			  }
	}
	
	Utilities.PriviewImage = function(FileObj, HiddenObjName, PreviewObjName)
	{
				   try{
				  
					   //alert('PriviewImage')
					   var HiddenObj = document.getElementById(HiddenObjName);
					   var PreviewObj = Utilities.GetElementByIdEx('img', PreviewObjName);
					   if(FileObj){
					   
						  if(PreviewObj){
						 
							 PreviewObj.src = 'file://' + FileObj.value;
						  }	 
						  if(HiddenObj){
						  
							 HiddenObj.value = FileObj.value;
						 }
					   }
				   }
				   catch(e){
				  
					   alert('Error[Utilities.PriviewImage()]: ' + e.message);
				   }
	}
	
	Utilities.GetElementByIdEx = function(TagName, Id)
	{
				   try{
				  
					   if(TagName && Id && TagName != '' && Id != ''){
					   
						  var Elements = document.getElementsByTagName(TagName);
						  if(Elements && Elements.length > 0){
							 
							 for(var i = 0; i < Elements.length; i++){
							    
								 if(Elements[i].id == Id){
					   
									return Elements[i];
								}
							 }
						  }
					   }	  
				   }
				   catch(e){
				  
					   alert('Error[Utilities.GetElementByIdEx()]: ' + e.message);
				   }
				   return null;
	}
	
	Utilities.LoadWindowPopupEx = function(EObject, WinName, Top, Left, Width, Height, OtherFeatures)
	{
				   try{
				  
					   //alert(EObject);
					   if(EObject){
					   
					      var Request = EObject.getAttribute('request');
					      Request = Request == ''?'':'?request='  + Request;
					      
					      var Url = EObject.getAttribute('href');
					      Url = (Url == '' || Url == null?'index.php':Url) + Request;
					      //alert(Url);
					      //EObject.setAttribute('href', 'JavaScript:void()');
					      //alert(EObject.getAttribute('href'));
					      
					      Width = (Width < 5)?screen.width:Width;
					      Height = (Height < 5)?screen.height:Height;
					      
					      Top = (Top == -1)?(screen.height / 2 - Height / 2):Top;
					      Left = (Left == -1)?(screen.width / 2 - Width / 2):Left;
					      //alert(Url);
					      return Utilities.LoadWindowPopup(WinName, Url, Top, Left, Width, Height, OtherFeatures); 
					   }
				   }
				   catch(e){
				  
					   alert('Error[Utilities.LoadWindowPopupEx()]: ' + e.message);
				   }
				   return null;
	}
	
	Utilities.LoadWindowPopup = function(WinName, Url, Top, Left, Width, Height, OtherFeatures)
	{
				   try{
				  
					   if(Url && Url != ''){
					   
					      if(!OtherFeatures){
					      
							  OtherFeatures = ',alwaysRaised=yes,dependent=yes,status=no,resizable=yes,toolbar=no,menubar=no,scrollbars=yes';
							  //OtherFeatures = 'menubar=1,resizable=1,width=350,height=250';
						  }
						  OtherFeatures = 'width=' + Width + ',height=' + Height + ',top=' + Top + ',left=' + Left + OtherFeatures;
					      //alert(OtherFeatures);
						  var NewWin = window.open(Url, WinName, OtherFeatures); 
						  //NewWin.document.write('Location: ' + NewWin.location);
						  return NewWin;
					   }
				   }
				   catch(e){
				  
					   alert('Error[Utilities.LoadWindowPopup()]: ' + e.message);
				   }
				   return null;
	}
	
	Utilities.Sort = function(THObject)
	{
				   try{
				  
					   if(THObject && THObject.parentNode && THObject.parentNode.parentNode && THObject.parentNode.parentNode.parentNode){
					   
						  var TableObj = THObject.parentNode.parentNode.parentNode;
						  //alert(TableObj.id);
						  
						  var TrElements = TableObj.getElementsByTagName('tr');
						  //alert('TrElements.lenght: ' + TrElements.length);
						  if(TrElements && TrElements.length > 0){
						  
							 //alert(TrElements[1].cells[1].nodeName + ' == ' + TrElements[1].cells[1].innerHTML);
							 var ColumnClicked = -1;
							 for(var Row = 0; Row < TrElements.length; Row++){
							 
								 for(var Col = 0; Col < TrElements[Row].childNodes.length; Col++){
								 
									 if(THObject == TrElements[Row].childNodes[Col]){
								 
										ColumnClicked = Col;
										Row = TrElements.length;
										break;
									 }
								 }
							 }
							 
							 if(ColumnClicked >= 0){
							 
								for(var Row = 0; Row < TrElements.length; Row++){
							 
									var Value1 = TrElements[Row].childNodes[ColumnClicked].innerHTML;
									var Col = Row;
									do{
									
									   TrElements[Row].childNodes[Col] = TrElements[Row].childNodes[Col - 1];
									   Col--;
									}
									while(TrElements[Row].childNodes[Col - 1].innerHTML > Value1);
									TrElements[Row].childNodes[ColumnClicked].innerHTML = Value1;
								}
							 }
							 alert('ColumnClicked: ' + ColumnClicked);
						  }
					   }
				   }
				   catch(e){
				  
					   alert('Error[Utilities.Sort()]: ' + e.message);
				   }
	}
	
	Utilities.HandleChildControlStatus = function(Obj, ChildControls)
	{
			  try{
				  
				  if(Obj && ChildControls && ChildControls.length > 0){
					   
					 var Status = !Obj.checked == true;
					 //alert(LinkValue);
					 for(var CtrlIndex = 0; CtrlIndex < ChildControls.length; CtrlIndex++){
					  
						 var Control = document.getElementById(ChildControls[CtrlIndex]);
						 //alert('ChildControls[' + CtrlIndex + ']: ' + ChildControls[CtrlIndex] + ', Controls: ' + Controls);
						 if(Control){
					  
							Control.disabled = Status;
							//alert('Controls[ValueIndex].disabled: ' + Controls[ValueIndex].disabled);
						 }
					  }
				   }
			  }
			  catch(e){
			  
				   alert('Error[Utilities.HandleChildControlStatus()]: ' + e.message);
			  }
	}
	
	Utilities.AddItemToListBox = function(ListBoxName, CtrlName, HiddenCtrlName, CheckDuplicate)
	{
			  try{
				  
				  var Ctrl = document.getElementById(CtrlName);
				  //alert(CtrlName);
				  //alert(Ctrl);
				  if(ListBoxName && ListBoxName != '' && Ctrl && Ctrl.value != ''){
					   
					 return Utilities.ListAddItem(ListBoxName, Ctrl.value, Ctrl.value, HiddenCtrlName, CheckDuplicate);
				  }
			  }
			  catch(e){
			  
				   alert('Error[Utilities.AddItemToListBox()]: ' + e.message);
			  }
			  return false;
	}
	
	Utilities.AddItemToListBoxCustom1 = function(ListBoxName, ValueCtrlName, TextCtrlName, HiddenCtrlName, CheckDuplicate)
	{
			  try{
				  
				  var ValueCtrl = document.getElementById(ValueCtrlName);
				  var TextCtrl = document.getElementById(TextCtrlName);
				  //alert(ValueCtrl);
				  //alert(TextCtrl);
				  if(ListBoxName && ListBoxName != '' && ValueCtrl && ValueCtrl.value != ''){
					   
					 return Utilities.ListAddItem(ListBoxName, ValueCtrl.value, TextCtrl.value, HiddenCtrlName, CheckDuplicate);
				  }
			  }
			  catch(e){
			  
				   alert('Error[Utilities.AddItemToListBox()]: ' + e.message);
			  }
			  return false;
	}
	
	Utilities.ListAddItem = function(ListBoxName, Value, Text, HiddenCtrlName, CheckDuplicate)
	{
			  try{
				  
				  var ListBox = document.getElementById(ListBoxName);
				  var HiddenCtrl = document.getElementById(HiddenCtrlName);
				  if(ListBox){
					   
					 var Opt = document.createElement('option');
					 Opt.value = Value;
					 Opt.text = Text;
					 //alert(Opt.value);
					 //alert(Opt.text);
					 if(CheckDuplicate && CheckDuplicate == true){
					 
					    if(Utilities.IsValueExists(ListBox, Value) == true){
					    
					       alert('Value already exists in the list.');
					       return false;
					    }
					 }
					 ListBox.options.add(Opt);
					 HiddenCtrl.value += (HiddenCtrl.value == '')?Value + '_@_' + Text:',' + Value + '_@_' + Text;
					 return true;
				   }
			  }
			  catch(e){
			  
				   alert('Error[Utilities.AddItemToListBox()]: ' + e.message);
			  }
			  return false;
	}
	
	Utilities.RemoveItemFromListBox = function(ListBoxName, HiddenCtrlName)
	{
			  try{
				  
				  var ListBox = document.getElementById(ListBoxName);
				  var HiddenCtrl = document.getElementById(HiddenCtrlName);
				  if(ListBox){
					   
					 if(ListBox.selectedIndex >= 0){
					 
						if(confirm('Are you sure?')){
						
						   var Value = ListBox.options[ListBox.selectedIndex].value;
						   ListBox.options[ListBox.selectedIndex] = null;
						   if(HiddenCtrl){
						   
						      HiddenCtrl.value = '';
							  for(var i = 0; i < ListBox.options.length; i++){
					 
							      HiddenCtrl.value += HiddenCtrl.value == ''?ListBox.options[i].value:',' + ListBox.options[i].value;
							  }
							  //alert(HiddenCtrl.value);
						   }
						   return true;
					    }
					 }
					 else{
					 
						alert('Please select an item to delete');
					 }
				   }
			  }
			  catch(e){
			  
				   alert('Error[Utilities.RemoveItemFromListBox()]: ' + e.message);
			  }
			  return false;
	}
	
	Utilities.IsValueExists = function(ListBox, Value, MatchText)
	{
			  try{
				  
				  if(ListBox && Value){
					   
					 for(var i = 0; i < ListBox.options.length; i++){
					 
						 var ValueToMatch = ListBox.options[i].value;
						 if(MatchText && MatchText == true){
						 
							ValueToMatch = ListBox.options[i].text;
						 }
					     if(ValueToMatch == Value){
					    
					        return true;
					     }
					 }
				  }
			  }
			  catch(e){
			  
				   alert('Error[Utilities.IsValueExists()]: ' + e.message);
			  }
			  return false;
	}
