function changePortletTitle(id, title)
{
	var objA = document.getElementById(id);
	if(objA) 
	{
		objA.innerHTML = '<span class=uportal-channel-title>' + title + '</span>';
	}
}

function confirmDelete(url, msg)
{
	if(msg!=null)
	{
	if(confirm(msg))
	{
	window.location = url;
	}
	}
	else if (confirm("Are you sure you wish to delete?")) 
	{
		window.location = url;
	}
}
		
function inValidCharSet(character,charset)
{
	var result = true;
	
	if (charset.indexOf(character)<0)
	{
		result = false;
	}

	return result;
}
	
function dateValidator(textToValidate)
{

	var text = textToValidate;
	text = Trim(text);
	if(text.length > 10)
	{
		for(var i=10; i<text.length; i++)
		{
			if(text.charAt(i) != '')
			{
				return false;
			}
		}
		
		text = text.substring(0, 9);
	}

    var checkDigit = true;		
	if(text.length < 10)
	{
		return false;
	}

	if((text.charAt(4)!='-')||(text.charAt(7)!='-') )
	{
		return false;
	}

	for(var i=0; i<text.length; i++)
	{
		if((i==4)||(i==7))
		{

		}
		else
		{
			var checkDigit = inValidCharSet(text.charAt(i),"0123456789");
			if(checkDigit ==false)
			{
			 return false;
			}	
		}
	}

	if((text.charAt(5)=='0')||(text.charAt(5)=='1'))
	{
		var check = true;
		switch (text.charAt(5))
		{
			case '0':
				if(text.charAt(6)==0)
				{
					check = false;
				}

				break;
			case '1':
				if(text.charAt(6)>2)
				{
					check = false;
				}
		}

		if(check == false)
		{
			return false;
		}
	}
	else
	{
		return false;
	}

	if(text.charAt(8)>3)
	{
		return false;
	}
	else
	{
		var check2;
		switch (text.charAt(8))
		{
			case '0':
				if(text.charAt(9)==0)
				{
					check2 = false;
				}
				break;
			case '3':
				if(text.charAt(9)>1)
				{
					check2 = false;
				}
		}
		if(check2 == false)
		{
			return false;
		}
	}

	var elems =text.split("-");
	var result = (elems.length == 3); 

	if (result)
	{	
		var year = parseInt(parseFloat(elems[0])); 			
		var month = parseInt(parseFloat(elems[1]));  			
		var day = parseInt(parseFloat(elems[2]));

		switch(month)
		{
			case 1:
				if(day>31)
				{
					return false;
				}
				break;
			case 2:
				if (year/4 == parseInt(year/4))
				{
					if(day>29)
					{
						return false;
					}
				}
				else
				{
					if(day>28)
					{
						return false;
					}
				}

				break;

			case 3:
				if(day>31)
				{
					return false;
				}

				break;

			case 4:
				if(day>30)
				{
					return false;
				}

				break;

			case 5:
				if(day>31)
				{
					return false;
				}

				break;

			case 6:
				if(day>30)
				{
					return false;
				}
				break;

			case 7:
				if(day>31)
				{
					return false;
				}
				break;

			case 8:
				if(day>31)
				{
					return false;
				}
					break;

			case 9:
				if(day>30)
				{
					return false;
				}

				break;

			case 10:
				if(day>31)
				{
					return false;
				}
				break;

			case 11:
				if(day>30)
				{
					return false;
				}

				break;
			case 12:
				if(day>31)
				{
					return false;
				}
				break;
			}
		}
		else
		{
			return false;
		}
		return true;
}
	

function LTrim(orgString) 
{
  return orgString.replace(/^\s+/,'')
}

function RTrim(orgString) 
{
  return orgString.replace(/\s+$/,'')
}

function Trim(orgString) 
{
	return RTrim(LTrim(orgString));
}

function isZero(elementID)
{
	//Second parameter in parseInt is radix, to ensure that the number returned is base 10.
	//without it numbers starting with "0" will default to base 8
	return (parseInt(getByID(elementID).value, 10)==0);
}

function isInteger(string)
{
	
	return (parseInt(getByID(string).value) + '' == getByID(string).value);
}

function isFloat(id) 
{
	return (!isNaN(parseFloat(replaceAll(getByID(id).value, ",", ""))));
}

function hide(elementID)
{
	getByID(elementID).style.display = 'none';
}

function isDisplayed(elementID)
{
	return (getByID(elementID).style.display != 'none');
}

function getByID(elementID)
{
	if(document.getElementById)
	{
		if(document.getElementById(elementID) != null)
		{
			return document.getElementById(elementID);
		} 
		else 
		{
			//showMessage('Element not found: ' + elementID);
			return null;
		}
	} 
	else if(document.all)
	{
		return eval('document.all.' + elementID);
	} 
	else 
	{
		showMessage('Unable to search for element: ' + elementID);
		return null;
	}
}

function showMessage(message)
{
	alert(message);
}

function getOption(text, value) 
{
	var opt = new Option();
	opt.text = text;
	opt.value = value;
	return opt;
}

function clearOptions(elementId) 
{
	var element = getByID(elementId);
	if(element != null) 
	{
		element.options.length = 0;
		element.options[0] = getOption("Select", 0);
		setSelectIndex(element.name, 0);
	}
}

function setSelectedOption(id, value) 
{
	var dropdown = getByID(id);
	if (dropdown != null) 
	{
		for (var i = 0; i < dropdown.options.length; i++) 
		{
			if (dropdown.options[i].value == value) 
			{
				dropdown.selectedIndex = i;
				return;
			}
		}
	}	
}

function setValue(elementID, value)
{
	getByID(elementID).value = value;
}

function getValue(elementID)
{
	return getByID(elementID).value;
}

function getSelectValue(elementID)
{
	return getByID(elementID).options[getByID(elementID).selectedIndex].value;
}

function setSelectIndex(elementID, index)
{
	getByID(elementID).selectedIndex = index;
}

/*****************************\
 Check / uncheck form elements
\*****************************/

function isChecked(elementID)
{
	return getByID(elementID).checked;
}

function isElementGroupChecked(elementName)
{
	var objCheckBoxes = document.getElementsByName(elementName);
	if(objCheckBoxes.length)
	{
		var countCheckBoxes = objCheckBoxes.length;
		for (var i = 0; i < countCheckBoxes; i++)
		{
			if (objCheckBoxes[i].checked == true) 
			{
				return true;
			}
		}
	}
	else 
	{ 
		return (objCheckBoxes.checked==true);
	}
	return false;
}

function isUnchecked(elementID)
{
	return (!(getByID(elementID).checked));
}

function check(elementID)
{
	getByID(elementID).checked = true;
}

function uncheck(elementID)
{
	getByID(elementID).checked = false;
}

function checkAll(arguments)
{
	for(var i = 0; i < arguments.length; i++)
	{
		arguments[i].checked = true;
	}	
}

function uncheckAll(arguments)
{
	for(var i = 0; i < arguments.length; i++)
	{
		arguments[i].checked = false;
	}
}

/******************************\
 Enable / disable form elements
\******************************/

function isDisabled(elementID)
{
	return getByID(elementID).disabled;
}

function isEnabled(elementID)
{
	return (!(getByID(elementID).disabled));
}

function validateEmail(string)
{
	var emailRe;

	// Rules for the email regular expression:
	// The start of the email must have at least one character 
	// before the @ sign
	// There may be either a . or a -, but not together before the @ sign
	// There must be an @ sign
	// At least once character must follow the @ sign
	// There may be either a . or a -, but not together in the address
	// The address must end with a . followed by at least 2 characters

	emailRe = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/;
	return (emailRe.test(Trim(string)))
}

function isEmpty(string)
{
	return (string == null || Trim(string).length == 0);
}


/***********************************\
 Dynamically add / remove table rows
\***********************************/

function getTRDOMObject(strTR) 
{
	try 
	{
		var strTable = "<table>" + strTR + "</table>";
		var objDIV = document.createElement("div");
		objDIV.innerHTML = strTable;
		return objDIV.firstChild.firstChild.firstChild;
	}
	catch(e)
	{
		raiseJScriptError(e,"getTRDOMObject");
	}
}

function deleteArgRow(argRowId) 
{
	
	var argRow = document.getElementById(argRowId);	
	argRow.removeNode(true);
}


/********************************************\
 Decode the string into HTML, escaping quotes,
 	ampersands and angle brackets. 
\********************************************/

function decodeHTML(strToDecode)
{
	strToDecode = strToDecode.replace("&lt;","<");
	strToDecode = strToDecode.replace("&gt;",">");
	strToDecode = strToDecode.replace("&amp;","&");
	strToDecode = strToDecode.replace("&#039;","'");
	strToDecode = strToDecode.replace("&quot;","\"");
	
	return strToDecode;
}

function isProper(string) 
{
   	if (!string) return false;
 	var iChars = "*|,\":<>[]{}`\';()@^&$#%";
	for (var i = 0; i < string.length; i++) {
   		if (iChars.indexOf(string.charAt(i)) != -1)
		return false;
	}
	return true;
}	
	
function TrimSpaces(prmString)
{
	var intStart,intEnd;
	var intLength = prmString.length
	for( intStart=0; intStart<intLength; intStart++)
	{
		if(prmString.charAt(intStart)!=" " )
		break;
	} 
	intEnd=intLength-1;
	while(intEnd>0)
	{
		if(prmString.charAt(intEnd)!=" ")
		break;
		intEnd--;
	}
	if(intStart<intEnd+1)
		return prmString.substring(intStart,intEnd+1);
	else
		return "";
}

function validateDate(value1, value2)
{
	var date1, date2;
	var month1, month2;
	var year1, year2;
        
	date1 = parseFloat(value1.substring (0, value1.indexOf ("/")));
	month1 = parseFloat(value1.substring (value1.indexOf ("/")+1, value1.lastIndexOf ("/")));
	year1 = parseFloat(value1.substring (value1.lastIndexOf ("/")+1, value1.length));
       
	date2 = parseFloat(value2.substring (0, value2.indexOf ("/")));
	month2 = parseFloat(value2.substring (value2.indexOf ("/")+1, value2.lastIndexOf ("/")));
	year2 = parseFloat(value2.substring (value2.lastIndexOf ("/")+1, value2.length));
     
	if (year1 > year2)
    { 
		return 1;
	}
	else if (year1 < year2) return -1;
		else if (month1 > month2)return 1;
		else if (month1 < month2) return -1;
	else if (date1 > date2) return 1;
		else if (date1 < date2) return -1;
		else return 0;
}

//** Massage for disabled links on search page **\\

function disabledMsg() 
{
	alert('You are not authorised to perform this action.');
}

function IsNumeric(sText)
{
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char;
    
   for (nCount = 0; nCount < sText.length && IsNumber == true; nCount++) 
   { 
      Char = sText.charAt(nCount); 
      if (ValidChars.indexOf(Char) == -1) 
      {
         IsNumber = false;
      }
   }
   return IsNumber;
   
}   

function IsFloating(sText)
{
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;
   var dot;		
   dot = sText.charAt(0); 
   if (dot == ".") 
   {
      IsNumber = false;
   }
 
   for (nCount = 0; nCount < sText.length && IsNumber == true; nCount++) 
   { 
      Char = sText.charAt(nCount); 
      if (ValidChars.indexOf(Char) == -1) 
      {
         IsNumber = false;
      }
   }
   return IsNumber;  
}   



function NewWindow(mypage,myname,w,h,scroll)
{
	var win = null;
	LeftPosition = (screen.width) ? (screen.width-w)/2 : 0;
	TopPosition = (screen.height) ? (screen.height-h)/2 : 0;
	settings ='height='+h+',width='+w+',top='+TopPosition+',left='+LeftPosition+',scrollbars=yes,resizable';
	win = window.open(mypage,myname,settings);
}
