var RUNTIME_MODE			= 'RELEASE';	
var DEBUG_INCLUDED		= ''; 
var DEBUG_EXCLUDED		= '*'; 
var RUNTIME_ERROR_MESSAGE	= 'System exception has occured in current page.\nPlease contact your system administrator or vendor!';
var DEBUG_INCLUDED_LIST = DEBUG_INCLUDED.split('~');
var DEBUG_EXCLUDED_LIST = DEBUG_EXCLUDED.split('~');

function ToggleRunTimeMode()
{	try{
		if(RUNTIME_MODE=='DEBUG'){RUNTIME_MODE = 'RELEASE';}
		else{RUNTIME_MODE = 'RELEASE';}
	}
	catch(e){ShowError(e);}
}
function ShowMessage(msg)
{	try{
		alert(msg);
	}
	catch(e){ShowError(e);}
}
function CheckDebugIncludedExcluded(functionName)
{	try
	{
		if(DEBUG_EXCLUDED=='*') 
		{
			for(var i=0;i<DEBUG_INCLUDED_LIST.length;i++)
			{		
				if(DEBUG_INCLUDED_LIST[i].toLowerCase()==functionName.toLowerCase()) return true;			
			}
			return false;
		}
		else 
		{	for(var i=0;i<DEBUG_EXCLUDED_LIST.length;i++)
			{	
				if(DEBUG_EXCLUDED_LIST[i].toLowerCase()==functionName.toLowerCase()) return false;			
			}
			if(DEBUG_INCLUDED=='*') return true;
			else
			{	for(var i=0;i<DEBUG_INCLUDED_LIST.length;i++)
				{		
					if(DEBUG_INCLUDED_LIST[i].toLowerCase()==functionName.toLowerCase()) return true;			
				}
			}
		}
	}
	catch(e){ShowError(e);}
	return false;			
}
function ShowDebug(msg)
{	try{	
		switch(RUNTIME_MODE)
		{	case 'DEBUG':
				var dbgmsg ='Event Stack Trace : ';
				var callerName = '';
				var callerFunc = ShowDebug.caller;
				var funcName = callerFunc.toString().substring(9,callerFunc.toString().indexOf('('));
				if(CheckDebugIncludedExcluded(funcName))				
				{   	while(callerFunc!=null)
				    	{	var funcName = callerFunc.toString().substring(0,callerFunc.toString().indexOf(')')+1);
						callerName = callerName+'\n\t['+funcName+']';
						callerFunc = callerFunc.caller;
				    	}
					dbgmsg+=(callerName==''?'top level code':callerName) + '\n'; 
					dbgmsg+='Page URL : '+window.location+'\n';		
					dbgmsg+='Source : '+(typeof(event)=='undefined' || event==null || event.srcElement==null?'[top level]':event.srcElement.id)+'\n';
					dbgmsg+='Message : '+msg;		
					alert(dbgmsg);
				}
				break;
			case 'RELEASE':break;
			default:alert(msg);break;
		}
	}
	catch(e){ShowError(e);}
}
function ShowError(e)
{	try{
		switch(RUNTIME_MODE)
		{	case 'DEBUG':
				var dbgmsg ='Error Stack Trace : ';
				var callerName = '';
				var callerFunc = ShowError.caller;
				while(callerFunc!=null)
				{	var funcName = callerFunc.toString().substring(0,callerFunc.toString().indexOf(')')+1);
					callerName = callerName + '\n\t['+funcName+']';
					callerFunc = callerFunc.caller;
				}
				dbgmsg+=(callerName==''?'top level code':callerName) + '\n'; 
				dbgmsg+='Source : '+(typeof(event)=='undefined' || event==null || event.srcElement==null?'[top level]':event.srcElement.id)+'\n';
				dbgmsg+='Page URL : '+window.location+'\n';		
				if(e!=null && typeof(e)!='undefined' && e.name!=null && typeof(e.name)!='undefined' && e.message!=null && typeof(e.message)!='undefined')
				{	dbgmsg+='Error Type : '+e.name+'\n';		
					dbgmsg+='Error Message : '+e.message+'\n';	
				}
				else{dbgmsg+='Error Detail : none\n';
					dbgmsg+='[original error object not passed]\n';}
				alert(dbgmsg);break;
			case 'RELEASE':alert(RUNTIME_ERROR_MESSAGE);break;
			default:alert(e.message);break;
		}
	}
	catch(e){ShowError(e);}
}
function jsCheckEmpty(pstrFieldName, pstrMessage)
{
	var lobj = document.getElementById(pstrFieldName);
	if (lobj == null) return raiseBUG(pstrFieldName);	
	if (isEmpty(lobj.value)){
		alert('Please provide ' + pstrMessage);
		lobj.focus();
		lobj.select();
		return false;
	}
	return true;
} 
function raiseBUG(pstrFieldName)
{
	alert('BUG : Invalid Object Specified [' + pstrFieldName + ']');
	return false;
}
function isEmpty( strValue ) {
   var strTemp = strValue;
   strTemp = trimAll(strTemp);
   if(strTemp.length > 0){
     return false;
   }
   return true;
}
function trimAll( strValue ) {
	var objRegExp = /^(\s*)$/;
    //check for all spaces
    if(objRegExp.test(strValue)) {
       strValue = strValue.replace(objRegExp, '');
       if( strValue.length == 0)
          return strValue;
    }
	//check for leading &amp; trailing spaces
	objRegExp = /^(\s*)([\W\w]*)(\b\s*$)/;
	if(objRegExp.test(strValue)) {
       //remove leading and trailing whitespace characters
       strValue = strValue.replace(objRegExp, '$2');
    }
	return strValue;
}
function jsCheckInteger(pstrFieldName, pbolIsMandatory, pstrMessage)
{
	var lobj =document.getElementById(pstrFieldName);
	if (lobj == null) return raiseBUG(pstrFieldName);
	if (isEmpty(lobj.value)){
		if (pbolIsMandatory == true)
		{
			alert('Please provide ' + pstrMessage);
			lobj.focus();
			lobj.select();
			return false;
		}
	}
	else if (isInteger(removeCommas(lobj.value)) == false) 
	{
		alert('Please provide integer value for ' + pstrMessage);
		lobj.focus();
		lobj.select();
		return false;
	}
	return true;
} 
function isInteger( strValue ) {
	var objRegExp  = /(^-?\d\d*$)/;
	//check for integer characters
	return objRegExp.test(strValue);
}
function removeCommas( strValue ) {
  var objRegExp = /,/g; //search for commas globally
  //replace all matches with empty strings
  return strValue.replace(objRegExp,'');
}
function isEmail( strValue) {
//	var objRegExp  = /(^[a-z]([a-z_\.]*)@([a-z_\.]*)([.][a-z]{3})$)|(^[a-z]([a-z_\.]*)@([a-z_\.]*)(\.[a-z]{3})(\.[a-z]{2})*$)/i;
	var objRegExp  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	//check for valid email
	return objRegExp.test(strValue);
}
function jsCheckEmail(pstrFieldName, pbolIsMandatory, pstrMessage)
{
	var lobj =document.getElementById(pstrFieldName);
	if (lobj == null) return raiseBUG(pstrFieldName);
	if (isEmpty(lobj.value)){
		if (pbolIsMandatory == true)
		{
			alert('Please provide ' + pstrMessage);
			lobj.focus();
			lobj.select();
			return false;
		}
	}
	else if (isEmail(lobj.value) == false) 
	{
		alert('Please provide valid email value for ' + pstrMessage);
		lobj.focus();
		lobj.select();
		return false;
	}
	return true;
} 

function jsShowText()
{	try{
		if(textIndex >=textArray[0].length)textIndex=0;
		else if(textIndex<0)textIndex=textArray[0].length - 1; 		
		for(var i=0;i<text.length;i++)
		{	var obj = document.getElementById(textOwner[i]);
			obj.innerHTML=''+textArray[i][textIndex]+'';
		}
	}catch(e){ShowError(e);}	
}

function jsValid()
{	try{
		if(!jsCheckEmpty("txtName","Name field"))return false;	
		if(!jsCheckEmpty("txtMPhone","Mobile phone field"))return false;	
		if(!jsCheckEmail("txtEmail",true,"Email field"))return false;
		if(!jsCheckEmpty("txtMsg","Message field"))return false;			
		return true;
	}
	catch(e){ShowError(e);return false;}
}
var message="Copyright © 2007 PT Fondaco Mitratama. All rights Reserved.";
function click(e) {
if (document.all) {
if (event.button == 2) {
alert(message);
return false;
}
}
if (document.layers) {
if (e.which == 3) {
alert(message);
return false;
}
}
}
if (document.layers) {
document.captureEvents(Event.MOUSEDOWN);
}
document.onmousedown=click;

function conf(path){
	if(confirm("Are you sure you want to delete this item?")){
		window.location=path;
	}
}
