// JavaScript Document
/*window.onload = function()
{
	var iframTags = document.getElementsByTagName("iframe");
	if(iframTags.length != 0)
		iframTags[iframTags.length-1].parentNode.removeChild(iframTags[iframTags.length-1]);
}*/

/*window.onload = function()
{
	var iframTags = window.frames;
	
	if(iframTags.length != 0)
	{
		for(var i = 0; i < iframTags.length; i++)
		{
			//var center = iframTags[i].parent.parentNode;
			
			if(iframTags[i].document.onload)
				alert(center);	
		}
	}
}*/

function goLite(FRM,BTN)
{
	
   window.document.forms[FRM].elements[BTN].style.color = "#333333"; // text color
   window.document.forms[FRM].elements[BTN].style.backgroundColor = "#F5F5F5"; // button background color
   window.document.forms[FRM].elements[BTN].style.borderColor = "#333333"; // button border color
}

function goDim(FRM,BTN)
{
   window.document.forms[FRM].elements[BTN].style.color = "#888888";
   window.document.forms[FRM].elements[BTN].style.backgroundColor = "#CCCCCC";
   window.document.forms[FRM].elements[BTN].style.borderColor = "#333333";
}

/***********************************FORM VALIDATION SECTION***********************************************************************/
/*********************************************************************************************************************************/

function inputOnFocus(inputNode)
{
	inputNode.style.border = '1px solid #333333';
}

function inputOnBlur(inputNode)
{
	inputNode.style.border = '1px solid #CCCCCC';
}


var error_show_object = 
{
	
	isError : new Boolean(false),
	
	getParentTag : function(oNode, sParentType)
	{
		var oParent = oNode.parentNode;
		while (oParent)
		{
			if (oParent.nodeName == sParentType)
				return oParent;
			oParent = oParent.parentNode;
		}
		return oParent;
	},

	removeChildNode : function(element)
	{
		while (element.firstChild) {
  			element.removeChild(element.firstChild);
		}
	},

	checkWSpace : function(textObj)
	{
		for(var i = 0; i < textObj.value.length; i++)
		{
			var ch = textObj.value.charAt(i);
			if(ch == ' ' || ch == '\t')
			{
				this.isError = true;
				return true;
			}
		}
		return false;
	},

	isErrorShowed : function(oNode)
	{
		var oParent = oNode.parentNode;
		var errorClasses = this.getElementsByClass('errorPlace', oParent);
		
		if(errorClasses.length == 0)
			return false;
		else
			return true;
	},

	emptyField : function(textObj)
	{
		if(textObj.value.length == 0)
		{
			this.isError = true;
			return true;
		}
		for(var i = 0; i < textObj.value.length; i++)
		{
			var ch = textObj.value.charAt(i);
			if(ch != ' ' && ch != '\t')
			{
				return false;
			}
		}
		this.isError = true;
		return true;				
	},

	isValidString : function(textObj)
	{
		var specialChars = "~`*^<>\"";
		var flag;
		for(var i = 0; i < textObj.value.length; i++)
		{
			aChar = textObj.value.charAt(i);
			aChar = aChar.toUpperCase();
			flag = specialChars.indexOf(aChar);
			if(flag > -1) 
			{
				this.isError = true;
				return false;
			}
		}
		
		return true;
	},

	IsInteger : function(textObj)
	{
		var ValidChars = "0123456789";
		var Char;
		
		for (i = 0; i < textObj.value.length ; i++) 
		{ 
			Char = textObj.value.charAt(i); 
			if (ValidChars.indexOf(Char) == -1) 
			{
				this.isError = true;
				return false;
			}
		}
		
		return true;
	},

	IsFloat : function(textObj)
	{
		var ValidChars = "0123456789.";
		var Char;
		
		for (i = 0; i < textObj.value.length ; i++) 
		{ 
			Char = textObj.value.charAt(i); 
			if (ValidChars.indexOf(Char) == -1) 
			{
				this.isError = true;
				return false;
			}
		}
		
		return true;
	},

	IsCharacter : function(textObj)
	{
		var ValidChars = "0123456789";
		var Char;
		
		for (i = 0; i < textObj.value.length ; i++) 
		{ 
			Char = textObj.value.charAt(i); 
			if (ValidChars.indexOf(Char) == 1) 
			{
				this.isError = true;
				return false;
			}
		}
		
		return true;
	},

	IsNumeric : function(textObj)
	{
		var ValidChars = "0123456789.,+- ";
		var Char;
		
		for (i = 0; i < textObj.value.length ; i++) 
		{ 
			Char = textObj.value.charAt(i); 
			if (ValidChars.indexOf(Char) == -1) 
			{
				this.isError = true;
				return false;
			}
		}
		
		return true;
	},
	
	IsMobile : function(textObj)
	{
		var ValidChars = "0123456789+-, ";
		var Char;
		
		for (i = 0; i < textObj.value.length ; i++) 
		{ 
			Char = textObj.value.charAt(i); 
			if (ValidChars.indexOf(Char) == -1) 
			{
				this.isError = true;
				return false;
			}
		}
		
		return true;
	},

	checkEmail : function(emailObj)
	{
		var emailFilter = /^.+@.+\..{2,3}$/;
		var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/
		if(!(emailFilter.test(emailObj))) { this.isError = true; return false; }
		if(emailObj.match(illegalChars)) { this.isError = true; return false; }
		
		return true;
	},
	
	checkDate : function(emailObj)
	{
		/*
		mm/dd/year
		var RegExPattern = /^(?=\d)(?:(?:(?:(?:(?:0?[13578]|1[02])(\/|-|\.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(\/|-|\.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})|(?:0?2(\/|-|\.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))|(?:(?:0?[1-9])|(?:1[0-2]))(\/|-|\.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2}))($|\ (?=\d)))?(((0?[1-9]|1[012])(:[0-5]\d){0,2}(\ [AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$/;
		*/
		 
		var RegExPattern = /^((((0?[1-9]|[12]\d|3[01])[\.\-\/](0?[13578]|1[02])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|[12]\d|30)[\.\-\/](0?[13456789]|1[012])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|1\d|2[0-8])[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|(29[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00)))|(((0[1-9]|[12]\d|3[01])(0[13578]|1[02])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|[12]\d|30)(0[13456789]|1[012])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|1\d|2[0-8])02((1[6-9]|[2-9]\d)?\d{2}))|(2902((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00))))$/;
		if ((emailObj.value.match(RegExPattern)) && (emailObj.value!='')) {
			return true;
		}
		else {
			this.isError = true;
			return false;
		} 
	},

	show_error : function(oNode, errorString)
	{
		var td = this.getParentTag(oNode, "TD");

		var errorTextDiv = document.createElement("div");
		errorTextDiv.style.color = 'red';
		errorTextDiv.setAttribute("class", "errorPlace");
		errorTextDiv.setAttribute("className", "errorPlace");
		
		
		var errorText = document.createTextNode(errorString);
		
		errorTextDiv.appendChild(errorText);

		// insert the new element into the DOM before sp2
		td.insertBefore(errorTextDiv, oNode);

		if(td.getElementsByTagName("input").length != 0)
			var box = td.getElementsByTagName("input").item(0);
		else if(td.getElementsByTagName("textarea").length != 0)
			var box = td.getElementsByTagName("textarea").item(0);
		else if(td.getElementsByTagName("select").length != 0)
			var box = td.getElementsByTagName("select").item(0);

		box.style.border = '1px solid #990000';

	},
	
	reset_fields : function(className)
	{
		this.isError = false;
		var errorClass = this.getElementsByClass("errorPlace");
		
		for(var i = 0; i < errorClass.length; i++)
		{
			var td = this.getParentTag(errorClass[i], "TD");
			errorClass[i].parentNode.removeChild(errorClass[i]);
			
			if(td.getElementsByTagName("input").length != 0)
				var box = td.getElementsByTagName("input").item(0);
			else if(td.getElementsByTagName("textarea").length != 0)
				var box = td.getElementsByTagName("textarea").item(0);
			else if(td.getElementsByTagName("select").length != 0)
				var box = td.getElementsByTagName("select").item(0);
			
			
			box.style.border = '1px solid #CCCCCC';
		}
	},
	
	getElementsByClass : function(searchClass,node,tag)
	{
		var classElements = new Array();
		if ( node == null )
			node = document;
		if ( tag == null )
			tag = '*';
		var els = node.getElementsByTagName(tag);
		var elsLen = els.length;
		var pattern = new RegExp('(^|\\s)'+searchClass+'(\\s|$)');
		for (i = 0, j = 0; i < elsLen; i++) {
			if ( pattern.test(els[i].className) ) {
				classElements[j] = els[i];
				j++;
			}
		}
		return classElements;
	}	

}



///////////////////////////////////////////////////////////
var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
/////////////////////////////////////////////
var ifram_ajax_object = 
{

	add_table_information : function(tableName, fieldName, fieldValue, actualFormName, errorString)
	{
		
		window.frames[0].document.checkDuplicateForm.tableName.value = tableName;
		window.frames[0].document.checkDuplicateForm.columnName.value = fieldName;
		window.frames[0].document.checkDuplicateForm.columnValue.value = fieldValue;
		window.frames[0].document.checkDuplicateForm.actualFormName.value = actualFormName;
		window.frames[0].document.checkDuplicateForm.errorString.value = errorString;
		
		document.getElementById("Loading_state").innerHTML = "Wait ....";
		window.frames[0].document.checkDuplicateForm.submit();
		
		return false;
	},
	
	server_response : function(status, formName, fieldName, errorString)
	{
		document.getElementById("Loading_state").innerHTML = "&nbsp;";
		if(status == "yes")
			error_show_object.show_error(document.getElementById(fieldName), "Duplicate "+errorString);
		else
			document.getElementById(formName).submit();
	}
	
}


