// JavaScript Functions
var arrInput = new Array(0);
var arrInputValue = new Array(0);

var dateSep; // default date separator
if (dateSep == '') dateSep = '/';

var fieldSep = ', '; // default separator between display fields
var ver55 = true;

var firstrowoffset = 1; // first data row start at
var tablename = 'listmain'; // table name
var lastrowoffset = 0; // footer row
var usecss = true; // use css
var rowclass = 'TableRow'; // row class
var rowaltclass = 'TableAltRow'; // row alternate class
var rowmoverclass = 'TableHighlightRow'; // row mouse over class
var rowselectedclass = 'TableSelectRow'; // row selected class
var roweditclass = 'TableEditRow'; // row edit class
var rowcolor = '#FFFFFF'; // row color
var rowaltcolor = '#F5F5F5'; // row alternate color
var rowmovercolor = '#FFCCFF'; // row mouse over color
var rowselectedcolor = '#CCFFFF'; // row selected color
var roweditcolor = '#FFFF99'; // row edit color

var DHTMLEditors = [];

//-----------------------------------------------------------------------------
//Show hide div layers

// store variables to control where the popup will appear relative to the cursor position
// positive numbers are below and to the right of the cursor, negative numbers are above and to the left
var xOffset = 30;
var yOffset = -5;

function showPopup (targetObjectId, eventObj) {
    if(eventObj) {
	// hide any currently-visible popups
	hideCurrentPopup();
	// stop event from bubbling up any farther
	eventObj.cancelBubble = true;
	// move popup div to current cursor position 
	// (add scrollTop to account for scrolling for IE)
	var newXCoordinate = (eventObj.pageX)?eventObj.pageX + xOffset:eventObj.x + xOffset + ((document.body.scrollLeft)?document.body.scrollLeft:0);
	var newYCoordinate = (eventObj.pageY)?eventObj.pageY + yOffset:eventObj.y + yOffset + ((document.body.scrollTop)?document.body.scrollTop:0);
	moveObject(targetObjectId, newXCoordinate, newYCoordinate);
	// and make it visible
	if( changeObjectVisibility(targetObjectId, 'visible') ) {
	    // if we successfully showed the popup
	    // store its Id on a globally-accessible object
	    window.currentlyVisiblePopup = targetObjectId;
	    return true;
	} else {
	    // we couldn't show the popup, boo hoo!
	    return false;
	}
    } else {
	// there was no event object, so we won't be able to position anything, so give up
	return false;
    }
} // showPopup

function hideCurrentPopup() {
    // note: we've stored the currently-visible popup on the global object window.currentlyVisiblePopup
    if(window.currentlyVisiblePopup) {
	changeObjectVisibility(window.currentlyVisiblePopup, 'hidden');
	window.currentlyVisiblePopup = false;
    }
} // hideCurrentPopup

function getStyleObject(objectId) {
    // cross-browser function to get an object's style object given its id
    if(document.getElementById && document.getElementById(objectId)) {
	// W3C DOM
	return document.getElementById(objectId).style;
    } else if (document.all && document.all(objectId)) {
	// MSIE 4 DOM
	return document.all(objectId).style;
    } else if (document.layers && document.layers[objectId]) {
	// NN 4 DOM.. note: this won't find nested layers
	return document.layers[objectId];
    } else {
	return false;
    }
} // getStyleObject

function changeObjectVisibility(objectId, newVisibility) {
    // get a reference to the cross-browser style object and make sure the object exists
    var styleObject = getStyleObject(objectId);
    if(styleObject) {
	styleObject.visibility = newVisibility;
	return true;
    } else {
	// we couldn't find the object, so we can't change its visibility
	return false;
    }
} // changeObjectVisibility

function moveObject(objectId, newXCoordinate, newYCoordinate) {
    // get a reference to the cross-browser style object and make sure the object exists
    var styleObject = getStyleObject(objectId);
    if(styleObject) {
	styleObject.left = newXCoordinate;
	styleObject.top = newYCoordinate;
	return true;
    } else {
	// we couldn't find the object, so we can't very well move it
	return false;
    }
} // moveObject

//end show/hide div layers
//------------------------------------------------------------------------------------


function selectKey(elem) {
	var f = elem.form;	
	if (!f.elements["key_d[]"]) return;
	if (f.elements["key_d[]"][0]) {
		for (var i=0; i<f.elements["key_d[]"].length; i++)
			f.elements["key_d[]"][i].checked = elem.checked;	
	} else {
		f.elements["key_d[]"].checked = elem.checked;	
	}
	if (f.elements["checkall"])
	{
		if (f.elements["checkall"][0])
		{
			for (var i = 0; i<f.elements["checkall"].length; i++)
				f.elements["checkall"][i].checked = elem.checked;
		} else {
			f.elements["checkall"].checked = elem.checked;
		}
	}
	clickall(elem);
}
function selected(elem) {
	var f = elem.form;	
	if (!f.elements["key_d[]"]) return false;
	if (f.elements["key_d[]"][0]) {
		for (var i=0; i<f.elements["key_d[]"].length; i++)
			if (f.elements["key_d[]"][i].checked) return true;
	} else {
		return f.elements["key_d[]"].checked;
	}
	return false;
}
function DHTMLEditor(name) {
	_this.name = name;
	_this.create = function() { _this.active = true; }
	_this.editor = null;
	_this.active = false;
}

function createEditor(name) {
	if (typeof DHTMLEditors == 'undefined')
		return;
	if (name && name.substring(0,2) == 'r_')
		name = name.replace(/r_/, 'x_');
	for (var i = 0; i < DHTMLEditors.length; i++) {
    var ed = DHTMLEditors[i];
		var cr = !ed.active;
		if (name) cr = cr && ed.name == name;
		if (cr) {
			if (typeof ed.create == 'function')
				ed.create();
			if (name)
				break;
		}
	}
}

function submitForm(_this) {	
		_this.submit();
}

function clearForm(_this){
	with (_this) {
		for (i=0; i<elements.length; i++){
			var tmpObj = elements[i];
			if (tmpObj.type == "checkbox") {
				tmpObj.checked = false;
			} else if (tmpObj.type == "radio") {
				if (tmpObj.name.substring(0,2) != 'v_')
					tmpObj.checked = false;
			} else if (tmpObj.type == "select-one") {
				tmpObj.selectedIndex = 0;
			} else if (tmpObj.type == "select-multiple") {
				for (j=0; j<tmpObj.options.length; j++)
					tmpObj.options[j].selected = 0;
			}	else if (tmpObj.type == "text" || tmpObj.type == "textarea")	{
				tmpObj.value = "";
			}
		}
	}
}

function RemoveSpaces(value) {
	str = value.replace(/^\s*|\s*$/g, "");
	str = str.toLowerCase();
	if (str == "<p />" || str == "<p/>" || str == "<p>" ||
		str == "<br />" || str == "<br/>" || str == "<br>" ||
		str == "&nbsp;" || str == "<p>&nbsp;</p>")
		return ""
	else
		return value;
}

function isHiddenTextArea(input_object, object_type) {
	return (object_type == "TEXTAREA" && input_object.style && input_object.style.display && input_object.style.display == "none");
}

function onError(form_object, input_object, object_type, error_message) {
	alert(error_message);									
	if (object_type == "RADIO" || object_type == "CHECKBOX") {
		if (input_object[0])
			input_object[0].focus();
		else
			input_object.focus();
	}	else if (!isHiddenTextArea(input_object, object_type)) { 
		input_object.focus();  
	}  
	if (object_type == "TEXT" || object_type == "PASSWORD" || object_type == "TEXTAREA" || object_type == "FILE") {
		if (!isHiddenTextArea(input_object, object_type))
			input_object.select();
	}
	return false;	
}

function hasValue(obj, obj_type) {
	if (obj_type == "TEXT" || obj_type == "PASSWORD" || obj_type == "TEXTAREA" || obj_type == "FILE")	{
		if (obj.value.length == 0) 
			return false;		
		else 
			return true;
	}	else if (obj_type == "SELECT") {
		if (obj.type != "select-multiple" && obj.selectedIndex == 0)
			return false;
		else if (obj.type == "select-multiple" && obj.selectedIndex == -1)
			return false;
		else
			return true;
	}	else if (obj_type == "RADIO" || obj_type == "CHECKBOX")	{
		if (obj[0]) {
			for (i=0; i < obj.length; i++) {
				if (obj[i].checked)
					return true;
			}
		} else {
			return (obj.checked);
		}
		return false;	
	}
}

// Date (mm/dd/yyyy)
function checkusdate(object_value) {
	if (object_value.length == 0)
		return true;
	
	isplit = object_value.indexOf(dateSep);
	
	if (isplit == -1 || isplit == object_value.length)
		return false;
	
	sMonth = object_value.substring(0, isplit);
	
	if (sMonth.length == 0)
		return false;
	
	isplit = object_value.indexOf(dateSep, isplit + 1);
	
	if (isplit == -1 || (isplit + 1 ) == object_value.length)
		return false;
	
	sDay = object_value.substring((sMonth.length + 1), isplit);
	
	if (sDay.length == 0)
		return false;
	
	isep = object_value.indexOf(' ', isplit + 1); 
	if (isep == -1) {
		sYear = object_value.substring(isplit + 1);
	} else {
		sYear = object_value.substring(isplit + 1, isep);
		sTime = object_value.substring(isep + 1);
		if (!checktime(sTime))
			return false; 
	}
	
	if (!checkinteger(sMonth)) 
		return false;
	else if (!checkrange(sMonth, 1, 12)) 
		return false;
	else if (!checkinteger(sYear)) 
		return false;
	else if (!checkrange(sYear, 0, 9999)) 
		return false;
	else if (!checkinteger(sDay)) 
		return false;
	else if (!checkday(sYear, sMonth, sDay))
		return false;
	else
		return true;
}

// Date (yyyy/mm/dd, )
function checkdate(object_value) {
	if (object_value.length == 0)
		return true;
	
	isplit = object_value.indexOf(dateSep);
	
	if (isplit == -1 || isplit == object_value.length)
		return false;
	
	sYear = object_value.substring(0, isplit);
	
	isplit = object_value.indexOf(dateSep, isplit + 1);
	
	if (isplit == -1 || (isplit + 1 ) == object_value.length)
		return false;
	
	sMonth = object_value.substring((sYear.length + 1), isplit);
	
	if (sMonth.length == 0)
		return false;
	
	isep = object_value.indexOf(' ', isplit + 1); 
	if (isep == -1) {
		sDay = object_value.substring(isplit + 1);
	} else {
		sDay = object_value.substring(isplit + 1, isep);
		sTime = object_value.substring(isep + 1);
		if (!checktime(sTime))
			return false; 
	}
	
	if (sDay.length == 0)
		return false;
	
	if (!checkinteger(sMonth)) 
		return false;
	else if (!checkrange(sMonth, 1, 12)) 
		return false;
	else if (!checkinteger(sYear)) 
		return false;
	else if (!checkrange(sYear, 0, 9999)) 
		return false;
	else if (!checkinteger(sDay)) 
		return false;
	else if (!checkday(sYear, sMonth, sDay))
		return false;
	else
		return true;
}

// Date (dd/mm/yyyy)
function checkeurodate(object_value) {
	if (object_value.length == 0)
	  return true;
	
	isplit = object_value.indexOf(dateSep);
	
	if (isplit == -1 || isplit == object_value.length)
		return false;
	
	sDay = object_value.substring(0, isplit);
	
	monthSplit = isplit + 1;
	
	isplit = object_value.indexOf(dateSep, monthSplit);
	
	if (isplit == -1 ||  (isplit + 1 )  == object_value.length)
		return false;
	
	sMonth = object_value.substring((sDay.length + 1), isplit);
	
	isep = object_value.indexOf(' ', isplit + 1); 
	if (isep == -1) {
		sYear = object_value.substring(isplit + 1);
	} else {
		sYear = object_value.substring(isplit + 1, isep);
		sTime = object_value.substring(isep + 1);
		if (!checktime(sTime))
			return false; 
	}
	
	if (!checkinteger(sMonth)) 
		return false;
	else if (!checkrange(sMonth, 1, 12)) 
		return false;
	else if (!checkinteger(sYear)) 
		return false;
	else if (!checkrange(sYear, 0, null)) 
		return false;
	else if (!checkinteger(sDay)) 
		return false;
	else if (!checkday(sYear, sMonth, sDay)) 
		return false;
	else
		return true;
}

function checkday(checkYear, checkMonth, checkDay) {
	maxDay = 31;
	
	if (checkMonth == 4 || checkMonth == 6 ||	checkMonth == 9 || checkMonth == 11) {
		maxDay = 30;
	} else if (checkMonth == 2)	{
		if (checkYear % 4 > 0)
			maxDay =28;
		else if (checkYear % 100 == 0 && checkYear % 400 > 0)
			maxDay = 28;
		else
			maxDay = 29;
	}
	
	return checkrange(checkDay, 1, maxDay); 
}

function checkinteger(object_value) {
	if (object_value.length == 0)
		return true;
	
	var decimal_format = ".";
	var check_char;
	
	check_char = object_value.indexOf(decimal_format);
	if (check_char < 1)
		return checknumber(object_value);
	else
		return false;
}

function numberrange(object_value, min_value, max_value) {
	if (min_value != null) {
		if (object_value < min_value)
			return false;
	}
	
	if (max_value != null) {
		if (object_value > max_value)
			return false;
	}
	
	return true;
}

function checknumber(object_value) {
	if (object_value.length == 0)
		return true;
	
	var start_format = " .+-0123456789";
	var number_format = " .0123456789";
	var check_char;
	var decimal = false;
	var trailing_blank = false;
	var digits = false;
	
	check_char = start_format.indexOf(object_value.charAt(0));
	if (check_char == 1)
		decimal = true;
	else if (check_char < 1)
		return false;
	 
	for (var i = 1; i < object_value.length; i++)	{
		check_char = number_format.indexOf(object_value.charAt(i))
		if (check_char < 0) {
			return false;
		} else if (check_char == 1)	{
			if (decimal)
				return false;
			else
				decimal = true;
		} else if (check_char == 0) {
			if (decimal || digits)	
			trailing_blank = true;
		}	else if (trailing_blank) { 
			return false;
		} else {
			digits = true;
		}
	}	
	
	return true;
}

function checkrange(object_value, min_value, max_value) {
	if (object_value.length == 0)
		return true;
	
	if (!checknumber(object_value))
		return false;
	else
		return (numberrange((eval(object_value)), min_value, max_value));	
	
	return true;
}

function checktime(object_value) {
	if (object_value.length == 0)
		return true;
	
	isplit = object_value.indexOf(':');
	
	if (isplit == -1 || isplit == object_value.length)
		return false;
	
	sHour = object_value.substring(0, isplit);
	iminute = object_value.indexOf(':', isplit + 1);
	
	if (iminute == -1 || iminute == object_value.length)
		sMin = object_value.substring((sHour.length + 1));
	else
		sMin = object_value.substring((sHour.length + 1), iminute);
	
	if (!checkinteger(sHour))
		return false;
	else if (!checkrange(sHour, 0, 23)) 
		return false;
	
	if (!checkinteger(sMin))
		return false;
	else if (!checkrange(sMin, 0, 59))
		return false;
	
	if (iminute != -1) {
		sSec = object_value.substring(iminute + 1);		
		if (!checkinteger(sSec))
			return false;
		else if (!checkrange(sSec, 0, 59))
			return false;	
	}
	
	return true;
}

function checkphone(object_value) {
	if (object_value.length == 0)
		return true;
	
	if (object_value.length != 12)
		return false;
	
	if (!checknumber(object_value.substring(0,3)))
		return false;
	else if (!numberrange((eval(object_value.substring(0,3))), 100, 1000))
		return false;
	
	if (object_value.charAt(3) != "-" && object_value.charAt(3) != " ")
		return false
	
	if (!checknumber(object_value.substring(4,7)))
		return false;
	else if (!numberrange((eval(object_value.substring(4,7))), 100, 1000))
		return false;
	
	if (object_value.charAt(7) != "-" && object_value.charAt(7) != " ")
		return false;
	
	if (object_value.charAt(8) == "-" || object_value.charAt(8) == "+")
		return false;
	else
		return (checkinteger(object_value.substring(8,12)));
} 
function checkzip(object_value) {
	if (object_value.length == 0)
		return true;
	
	if (object_value.length != 5 && object_value.length != 10)
		return false;
	
	if (object_value.charAt(0) == "-" || object_value.charAt(0) == "+")
		return false;
	
	if (!checkinteger(object_value.substring(0,5)))
		return false;
	
	if (object_value.length == 5)
		return true;
	
	if (object_value.charAt(5) != "-" && object_value.charAt(5) != " ")
		return false;
	
	if (object_value.charAt(6) == "-" || object_value.charAt(6) == "+")
		return false;
	
	return (checkinteger(object_value.substring(6,10)));
} 
function checkcreditcard(object_value) {
	var white_space = " -";
	var creditcard_string = "";
	var check_char;
	
	if (object_value.length == 0)
		return true;
	
	for (var i = 0; i < object_value.length; i++) {
		check_char = white_space.indexOf(object_value.charAt(i));
		if (check_char < 0)
			creditcard_string += object_value.substring(i, (i + 1));
	}	
	
	if (creditcard_string.length == 0)
		return false;	 
	
	if (creditcard_string.charAt(0) == "+")
		return false;
	
	if (!checkinteger(creditcard_string))
		return false;
	
	var doubledigit = creditcard_string.length % 2 == 1 ? false : true;
	var checkdigit = 0;
	var tempdigit;
	
	for (var i = 0; i < creditcard_string.length; i++) {
		tempdigit = eval(creditcard_string.charAt(i));		
		if (doubledigit) {
			tempdigit *= 2;
			checkdigit += (tempdigit % 10);			
			if ((tempdigit / 10) >= 1.0)
				checkdigit++;			
			doubledigit = false;
		}	else {
			checkdigit += tempdigit;
			doubledigit = true;
		}
	}
		
	return (checkdigit % 10) == 0 ? true : false;
} 
function checkssc(object_value) {
	var white_space = " -+.";
	var ssc_string="";
	var check_char;
	
	if (object_value.length == 0)
		return true;
	
	if (object_value.length != 11)
		return false;
	
	if (object_value.charAt(3) != "-" && object_value.charAt(3) != " ")
		return false;
	
	if (object_value.charAt(6) != "-" && object_value.charAt(6) != " ")
		return false;
	
	for (var i = 0; i < object_value.length; i++) {
		check_char = white_space.indexOf(object_value.charAt(i));
		if (check_char < 0)
			ssc_string += object_value.substring(i, (i + 1));
	}	
	
	if (ssc_string.length != 9)
		return false;	 
	
	if (!checkinteger(ssc_string))
		return false;
	
	return true;
}
	

function checkemail(object_value) {
	if (object_value.length == 0)
		return true;
	
	if (!(object_value.indexOf("@") > -1 && object_value.indexOf(".") > -1))
		return false;    
	
	return true;
}
	
// GUID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}	
function checkGUID(object_value)	{
	if (object_value.length == 0)
		return true;
	if (object_value.length != 38)
		return false;
	if (object_value.charAt(0)!="{")
		return false;
	if (object_value.charAt(37)!="}")
		return false;	
	
	var hex_format = "0123456789abcdefABCDEF";
	var check_char;	
	
	for (var i = 1; i < 37; i++) {		
		if ((i==9) || (i==14) || (i==19) || (i==24)) {
			if (object_value.charAt(i)!="-")
				return false;
		} else {
			check_char = hex_format.indexOf(object_value.charAt(i));
			if (check_char < 0)
				return false;
		}
	}
	return true;
}
	

// Update a combobox with filter value
// object_value_array format
// object_value_array[n] = option value
// object_value_array[n+1] = option text 1
// object_value_array[n+2] = option text 2
// object_value_array[n+3] = option filter value
function updatecombo(obj, object_value_array, filter_value) {	
	var value = (obj.selectedIndex > -1) ? obj.options[obj.selectedIndex].value : null;
	for (var i = obj.length-1; i > 0; i--) {
		obj.options[i] = null;
	}	
	for (var j=0; j<object_value_array.length; j=j+4) {
		if (object_value_array[j+3].toUpperCase() == filter_value.toUpperCase()) {
			newopt(obj, object_value_array[j], object_value_array[j+1], object_value_array[j+2]);			
		}	
	}
	selectopt(obj, value);
}

// Create combobox option 
function newopt(obj, value, text1, text2) {
	var text = text1;
	if (text2 != "")
		text += fieldSep + text2;
	var optionName = new Option(text, value, false, false)
	var length = obj.length;
	obj.options[length] = optionName;
}

// Select combobox option
function selectopt(obj, value) {
	if (value != null) {
		for (var i = obj.length-1; i>=0; i--) {
			if (obj.options[i].value.toUpperCase() == value.toUpperCase()) {
				obj.selectedIndex = i;
				break;
			}
		}
	}
}

// Get image width/height
function getimagesize(file_object, width_object, height_object) {
	if (navigator.appVersion.indexOf("MSIE") != -1)	{
		myimage = new Image();
		myimage.onload = function () {
			width_object.value = myimage.width; height_object.value = myimage.height;
		}		
		myimage.src = file_object.value;
	}
}

// Get Netscape Version
function getNNVersionNumber() {
	if (navigator.appName == "Netscape") {
		var appVer = parseFloat(navigator.appVersion);
		if (appVer < 5) {
			return appVer;
		} else {
			if (typeof navigator.vendorSub != "undefined")
				return parseFloat(navigator.vendorSub);
		}
	}
	return 0;
} 
// Confirm Message
function _confirm(msg)
{
	var agree=confirm(msg);
	if (agree)
		return true ;
	else {
		return false ;
	}
}

// Confirm Delete Message
function confirmdelete(msg)
{
	var agree = confirm(msg);
	if (agree)
		return true ;
	else {
		_cleardelete(); // clear delete status
		return false ;
	}
}

// Set mouse over color
function _mouseover(row) {
	row.mover = true; // mouse over
	if (!row.selected) {
		if (usecss)
			row.className = rowmoverclass;
		else
			row.style.backgroundColor = rowmovercolor;
	}
}

// Set mouse out color
function _mouseout(row) {
	row.mover = false; // mouse out
	if (!row.selected) {
		_setcolor(row);
	}
}

// Set row color
function _setcolor(row) {
	if (row.selected) {
		if (usecss)
			row.className = rowselectedclass;
		else
			row.style.backgroundColor = rowselectedcolor;
	}
	else if (row.edit) {
		if (usecss)
			row.className = roweditclass;
		else
			row.style.backgroundColor = roweditcolor;
	}
	else if ((row.rowIndex-firstrowoffset)%2) {
		if (usecss)
			row.className = rowaltclass;
		else
			row.style.backgroundColor = rowaltcolor;
	}
	else {
		if (usecss)
			row.className = rowclass;
		else
			row.style.backgroundColor = rowcolor;
	}
}

// Set selected row color
function _click(row) {
	if (row.deleteclicked)
		row.deleteclicked = false; // reset delete button/checkbox clicked
	else {
		var bselected = row.selected;
		_clearselected(); // clear all other selected rows
		
		if (!row.deleterow) row.selected = !bselected; // toggle
		_setcolor(row);		
	}
}

// Clear selected rows color
function _clearselected() {
	var table = document.getElementById(tablename);
	for (var i = firstrowoffset; i < table.rows.length; i++) {
		var thisrow = table.rows[i];
		if (thisrow.selected && !thisrow.deleterow) {
			thisrow.selected = false;
			_setcolor(thisrow);
		}
	}
}

// Clear all row delete status
function cleardelete() {
	var table = document.getElementById(tablename);
	for (var i = firstrowoffset; i < table.rows.length; i++) {
		var thisrow = table.rows[i];
		thisrow.deleterow = false;
	}
}

// Click all delete button
function clickall(chkbox) {
	var table = document.getElementById(tablename);
	for (var i = firstrowoffset; i < table.rows.length; i++) {
		var thisrow = table.rows[i];
		thisrow.selected = chkbox.checked;
		thisrow.deleterow = chkbox.checked;
		_setcolor(thisrow);
	}
}

// Click single delete link
function clickdelete() {
	_clearselected();
	var table = document.getElementById(tablename);
	for (var i = firstrowoffset; i < table.rows.length; i++) {
		var thisrow = table.rows[i];
		if (thisrow.mover) {
			thisrow.deleteclicked = true;
			thisrow.deleterow = true;
			thisrow.selected = true;
			_setcolor(thisrow);
			break;
		}
	}
}

// Click multi delete checkbox
function _clickmultidelete(chkbox) {
	_clearselected();
	var table = document.getElementById(tablename);
	for (var i = firstrowoffset; i < table.rows.length; i++) {
		var thisrow = table.rows[i];
		if (thisrow.mover) {
			thisrow.deleteclicked = true;
			thisrow.deleterow = chkbox.checked;
			thisrow.selected = chkbox.checked;
			_setcolor(thisrow);
			break;
		}
	}
}

// Create XMLHTTP
// Note: AJAX feature requires IE5.5+, FF1+, and NS6.2+
function createXMLHttp() {
	if (!(document.getElementsByTagName || document.all))
		return;		
	var ret = null;
	try {
		ret = new ActiveXObject('Msxml2.XMLHTTP');
	}	catch (e) {
	    try {
	        ret = new ActiveXObject('Microsoft.XMLHTTP');
	    } catch (ee) {
	        ret = null;
	    }
	}
	if (!ret && typeof XMLHttpRequest != 'undefined')
	    ret = new XMLHttpRequest();	
	return ret;
}

// Update a combobox with filter value by AJAX
// object_value_array format
// object_value_array[n] = option value
// object_value_array[n+1] = option text 1
// object_value_array[n+2] = option text 2
// object_value_array[n+3] = option filter value
function ajaxupdatecombo(obj, filter_value) {	
	if (!(document.getElementsByTagName || document.all))
		return;
	try {
		var value = (obj.selectedIndex > -1) ? obj.options[obj.selectedIndex].value : null;
		for (var i = obj.length-1; i > 0; i--) {
			obj.options[i] = null;
		}
		var s = eval('obj.form.s_' + obj.id + '.value');

		if (!s || s == '') return;
		var xmlHttp = createXMLHttp();
		if (!xmlHttp) return;		
		xmlHttp.open('get', LookupFn + '?s=' + encodeURIComponent(s) +	'&q=' +
			encodeURIComponent(filter_value));					
		xmlHttp.onreadystatechange = function() {
			//alert(xmlHttp.responseText);					
			if (xmlHttp.readyState == 4 && xmlHttp.status == 200 &&
				xmlHttp.responseText) {
				//alert(xmlHttp.responseText);							
				var object_value_array = xmlHttp.responseText.split('\r');					
				for (var j=0; j<object_value_array.length-2; j=j+3) {
					newopt(obj, object_value_array[j], object_value_array[j+1],
						object_value_array[j+2]);							
				}
				selectopt(obj, value);
			}
		}		
		xmlHttp.send(null);
	}	catch (e) {}
}

function HtmlEncode(text) {
	var str = text;
	str = str.replace(/&/g, '&amp');
	str = str.replace(/\"/g, '&quot;');
	str = str.replace(/</g, '&lt;');
	str = str.replace(/>/g, '&gt;'); 
	return str;
}

// Google Suggest for textbox by AJAX
// object_value_array format
// object_value_array[n] = display value
// object_value_array[n+1] = display value 2
function ajaxupdatetextbox(object_name) {
	var obj, as;	
	if (document.all) {
		obj = document.all(object_name);
		if (obj) as = document.all('as_' + object_name);		
	} else if (document.getElementById) {
		obj = document.getElementById(object_name);
		if (obj) as = document.getElementById('as_' + object_name);
	}	
	if (!obj || !as) return false;		
	try {		
		var s = eval('obj.form.s_' + obj.name + '.value');
		
		var q = obj.value;
		q = q.replace(/^\s*/, ''); // left trim				
		if (!s || s == '' || q.length == 0) return false;					
		var xmlHttp = createXMLHttp();
		if (!xmlHttp) return;				
		xmlHttp.open('get', LookupFn + '?s=' + encodeURIComponent(s) + '&q=' +	encodeURIComponent(q));		
		xmlHttp.onreadystatechange = function() {
			//alert(xmlHttp.responseText);
			if (xmlHttp.readyState == 4 && xmlHttp.status == 200 &&
				xmlHttp.responseText) {										
				var object_value_array = xmlHttp.responseText.split('\r');
				var sHtml = '';
				for (var j=0; j<object_value_array.length-2; j=j+2) {
					var value = object_value_array[j];
					var text = object_value_array[j];
					if (object_value_array[j+1] != "")
						text += fieldSep + object_value_array[j+1];
					var i = j/2 + 1;
					sCtrlID = object_name + "_mi_" + i;
					sFunc1 = "astOnMouseClick(" + i + ", \"" + object_name + "\", \"" + as.id + "\")";
					sFunc2 = "astOnMouseOver(" + i + ", \"" + object_name + "\")";
					sHtml += "<div class=\"AstListItem\" id=\"" + sCtrlID + "\" name=\"" + sCtrlID + "\" onclick='" + sFunc1 + "' + onmouseover='" + sFunc2 + "'>" + text + "</div>";
					// add hidden field to store the value of current item
					sMenuItemValueID = sCtrlID + "_value";
					sHtml += "\n\r";
					sHtml += "<input type=\"hidden\" id=\"" + sMenuItemValueID + "\" name=\"" + sMenuItemValueID + "\" value=\"" + HtmlEncode(text) + "\">";
				}
				//alert(sHtml);	
				astShowDiv(as.id, sHtml);
			} else {
				astHideDiv(as.id);
			}
		}
		xmlHttp.send(null);
	}	catch (e) {}
	return false;
}

// Functions for adding new option dynamically

function ShowAddOption(id) {
	if (!document.getElementById) return;
	var elem;
	elem = document.getElementById("ao_" + id);
	if (elem) elem.style.display = "block"; 
	elem = document.getElementById("cb_" + id);
	if (elem)	elem.style.display = "none";	
}

function HideAddOption(id) {
	var elem;
	elem = document.getElementById("cb_" + id);
	if (elem)	elem.style.display = "inline"; 
	elem = document.getElementById("ao_" + id);
	if (elem) elem.style.display = "none"; 
}

function PostNewOption(id) {
	var elem;
	var url = AddOptFn + "?";
	elem = document.getElementById("ltn_" + id);
	url += "ltn=" + encodeURIComponent(elem.value);
	elem = document.getElementById("dfn_" + id);
	if (elem) url += "&dfn=" + encodeURIComponent(elem.value);
	elem = document.getElementById("dfq_" + id);
	if (elem) url += "&dfq=" + encodeURIComponent(elem.value);
	elem = document.getElementById("lfn_" + id);
	if (elem) url += "&lfn=" + encodeURIComponent(elem.value);
	elem = document.getElementById("lfq_" + id);
	if (elem) url += "&lfq=" + encodeURIComponent(elem.value);
	elem = document.getElementById("df2n_" + id);
	if (elem) url += "&df2n=" + encodeURIComponent(elem.value);
	elem = document.getElementById("df2q_" + id);
	if (elem) url += "&df2q=" + encodeURIComponent(elem.value);	
	
	var lf = document.getElementById("lf_" + id);
	var lfm = document.getElementById("lfm_" + id);
	if (lf) {
		if (hasValue(lf, "TEXT")) {
			url += "&lf=" + encodeURIComponent(lf.value); 
		} else {
			if (!onError(lf.form, lf, "TEXT", (lfm?lfm.value:"Missing link field value")))
				return false;		
		}
	}
	
	var df = document.getElementById("df_" + id);
	var dfm = document.getElementById("dfm_" + id);
	if (df) {
		if (hasValue(df, "TEXT")) {
			url += "&df=" + encodeURIComponent(df.value); 
		} else {
			if (!onError(df.form, df, "TEXT", (dfm?dfm.value:"Missing display field value")))
				return false;		
		}
	}
	
	var df2 = document.getElementById("df2_" + id);
	var df2m = document.getElementById("df2m_" + id);
	if (df2) {
		if (hasValue(df2, "TEXT")) {
			url += "&df2=" + encodeURIComponent(df2.value); 
		} else {
			if (!onError(df2.form, df2, "TEXT", (df2m?df2m.value:"Missing display field #2 value")))
				return false;		
		}
	}
	
	try {			
		var xmlHttp = createXMLHttp();
		if (!xmlHttp) return;		
		xmlHttp.open('get', url, true); // not async					
		xmlHttp.onreadystatechange = function() {
			//alert(xmlHttp.responseText);					
			if (xmlHttp.readyState == 4 && xmlHttp.status == 200 &&
				xmlHttp.responseText) {				
				var opt = xmlHttp.responseText.split('\r');
				if (opt.length > 3 && opt[0]== 'OK') {
					var elem = document.getElementById(id);			
					if (elem) {																					
						newopt(elem, opt[1], opt[2], opt[3]);								
						HideAddOption(id);
						elem.options[elem.options.length-1].selected = true;
						elem.focus();
					}
				} else {
					alert(xmlHttp.responseText);
				}				
			}
		}		
		xmlHttp.send(null);
	}	catch (e) {}

}

function submitForm(form)
{
	form.submit();
} 

function addInput() {
  //arrInput.push(createInput(arrInput.length));
  arrInput.push(arrInput.length);
  //arrInputValue.push(arrInputValue.length);
  arrInputValue.push("");
  display();
}

function display() {
  document.getElementById('parah').innerHTML="";
  for (intI=0;intI<arrInput.length;intI++) {
    document.getElementById('parah').innerHTML+=createInput(arrInput[intI], arrInputValue[intI]);
  }
}

function saveValue(intId,strValue) {
  arrInputValue[intId]=strValue;
}  

function createInput(id,value) {
   return "<tr><td width=100 class=\"weTableHeader\"><span>Example "+(id+1)+".</span></td><td class=\"TableAltRow\"><textarea name=\"txtaExample[]\" rows=5 cols=46 id='ex"+ id +"' onChange='javascript:saveValue("+ id +",this.value)'>"+value +"</textarea><td></tr><BR>";
}

function deleteInput() {
  if (arrInput.length > 0) { 
     arrInput.pop(); 
     arrInputValue.pop();
  }
  display(); 
}

// function that popup and redirect parent on success
var height_value="";
function pop_up(pagelink,key_id,key_value,height_value){
	
	if(height_value==""){
		height_value=500;
	}
	
	if(key_id==""){
		theURL=pagelink;
	}
	else{
		theURL=pagelink+"?case=popup&"+key_id+"="+key_value;
	}
	testwindow=window.open(theURL,"CND",'alwaysRaised=yes,scrollbars=yes,width=650,resizable=yes,height='+height_value);
	testwindow.moveTo(150,50);
}

function Unlink_rel(relid){
	if(confirm("Do you want to continue ?")){
		return true;
	}
	else{
		return false;
	}
}

/* For AJAX INPUT*/
var tblname = "";
var elementid = "";
var sqlcase = "";
var link_value = "";

function callme(val,username,tblname,id){
	

	
	if(navigator.appName!="Microsoft Internet Explorer"){
		var elementid=id
		var path ="ajaxresult.php?tbl="+tblname+"&u="+username+"&link_type="+link_value+"&";
		var options = {
			script: path,
			varname:"input"
		};
		var as = new AutoSuggest(id, options, tblname);

	}
	
	}

function clearForms()
{
  var i;
  for (i = 0; (i < document.forms.length); i++) {
    document.forms[i].reset();
  }
}

function toggle(o)
{
var e = document.getElementById(o);
e.style.display = (e.style.display == 'none') ? 'block' : 'none';
}

function change_textbox(val){
/*var keyboard=document.getElementById("keyboard_input");

keyboard.style.position="absoulte";
keyboard.style.top="70px";
*/
if(val==0 || val==1){
	document.srch_frm.srch_hidden.value="";
	document.srch_frm.general.disabled=false;
	document.srch_frm.general.style.visibility="visible";
	document.srch_frm.general.style.position="absolute";
	document.srch_frm.general.style.left="10";
	document.srch_frm.hw_name.disabled=true;
	document.srch_frm.hw_name.style.visibility="hidden";
	document.srch_frm.vf_name.disabled=true;
	document.srch_frm.vf_name.style.visibility="hidden";
	document.srch_frm.comp_name.disabled=true;
	document.srch_frm.comp_name.style.visibility="hidden";
	document.srch_frm.phr_name.disabled=true;
	document.srch_frm.phr_name.style.visibility="hidden";
	document.srch_frm.idm_name.disabled=true;
	document.srch_frm.idm_name.style.visibility="hidden";
	document.srch_frm.prov_name.disabled=true;
	document.srch_frm.prov_name.style.visibility="hidden";
	}
else if(val=="HW"){
	document.srch_frm.srch_hidden.value=1;
	document.srch_frm.hw_name.disabled=false;
	document.srch_frm.hw_name.style.visibility="visible";
	document.srch_frm.hw_name.style.position="absolute";
	document.srch_frm.hw_name.style.left="10";
	document.srch_frm.general.disabled=true;
	document.srch_frm.general.style.visibility="hidden";
	document.srch_frm.vf_name.disabled=true;
	document.srch_frm.vf_name.style.visibility="hidden";
	document.srch_frm.comp_name.disabled=true;
	document.srch_frm.comp_name.style.visibility="hidden";
	document.srch_frm.phr_name.disabled=true;
	document.srch_frm.phr_name.style.visibility="hidden";
	document.srch_frm.idm_name.disabled=true;
	document.srch_frm.idm_name.style.visibility="hidden";
	document.srch_frm.prov_name.disabled=true;
	document.srch_frm.prov_name.style.visibility="hidden";
	}
else if(val=="VF"){
	document.srch_frm.srch_hidden.value=2;
	document.srch_frm.vf_name.disabled=false;
	document.srch_frm.vf_name.style.visibility="visible";
	document.srch_frm.vf_name.style.position="absolute";
	document.srch_frm.vf_name.style.left="10";
	document.srch_frm.general.disabled=true;
	document.srch_frm.general.style.visibility="hidden";
	document.srch_frm.hw_name.disabled=true;
	document.srch_frm.hw_name.style.visibility="hidden";
	document.srch_frm.comp_name.disabled=true;
	document.srch_frm.comp_name.style.visibility="hidden";
	document.srch_frm.phr_name.disabled=true;
	document.srch_frm.phr_name.style.visibility="hidden";
	document.srch_frm.idm_name.disabled=true;
	document.srch_frm.idm_name.style.visibility="hidden";
	document.srch_frm.prov_name.disabled=true;
	document.srch_frm.prov_name.style.visibility="hidden";
	}
else if(val=="COMP"){
	document.srch_frm.srch_hidden.value=3;
	document.srch_frm.comp_name.disabled=false;
	document.srch_frm.comp_name.style.visibility="visible";
	document.srch_frm.comp_name.style.position="absolute";
	document.srch_frm.comp_name.style.left="10";
	document.srch_frm.general.disabled=true;
	document.srch_frm.general.style.visibility="hidden";
	document.srch_frm.hw_name.disabled=true;
	document.srch_frm.hw_name.style.visibility="hidden";
	document.srch_frm.vf_name.disabled=true;
	document.srch_frm.vf_name.style.visibility="hidden";
	document.srch_frm.phr_name.disabled=true;
	document.srch_frm.phr_name.style.visibility="hidden";
	document.srch_frm.idm_name.disabled=true;
	document.srch_frm.idm_name.style.visibility="hidden";
	document.srch_frm.prov_name.disabled=true;
	document.srch_frm.prov_name.style.visibility="hidden";
	}
else if(val=="PHR"){
	document.srch_frm.srch_hidden.value=4;
	document.srch_frm.phr_name.disabled=false;
	document.srch_frm.phr_name.style.visibility="visible";
	document.srch_frm.phr_name.style.position="absolute";
	document.srch_frm.phr_name.style.left="10";
	document.srch_frm.general.disabled=true;
	document.srch_frm.general.style.visibility="hidden";
	document.srch_frm.hw_name.disabled=true;
	document.srch_frm.hw_name.style.visibility="hidden";
	document.srch_frm.vf_name.disabled=true;
	document.srch_frm.vf_name.style.visibility="hidden";
	document.srch_frm.comp_name.disabled=true;
	document.srch_frm.comp_name.style.visibility="hidden";
	document.srch_frm.idm_name.disabled=true;
	document.srch_frm.idm_name.style.visibility="hidden";
	document.srch_frm.prov_name.disabled=true;
	document.srch_frm.prov_name.style.visibility="hidden";
}
else if(val=="IDM"){
	document.srch_frm.srch_hidden.value=5;
	document.srch_frm.idm_name.disabled=false;
	document.srch_frm.idm_name.style.visibility="visible";
	document.srch_frm.idm_name.style.position="absolute";
	document.srch_frm.idm_name.style.left="10";
	document.srch_frm.general.disabled=true;
	document.srch_frm.general.style.visibility="hidden";
	document.srch_frm.hw_name.disabled=true;
	document.srch_frm.hw_name.style.visibility="hidden";
	document.srch_frm.vf_name.disabled=true;
	document.srch_frm.vf_name.style.visibility="hidden";
	document.srch_frm.comp_name.disabled=true;
	document.srch_frm.comp_name.style.visibility="hidden";
	document.srch_frm.phr_name.disabled=true;
	document.srch_frm.phr_name.style.visibility="hidden";
	document.srch_frm.prov_name.disabled=true;
	document.srch_frm.prov_name.style.visibility="hidden";
}
else if(val=="PROV"){

	document.srch_frm.srch_hidden.value=6;
	document.srch_frm.prov_name.disabled=false;
	document.srch_frm.prov_name.style.visibility="visible";
	document.srch_frm.prov_name.style.position="absolute";
	document.srch_frm.prov_name.style.left="10";
	document.srch_frm.general.disabled=true;
	document.srch_frm.general.style.visibility="hidden";
	document.srch_frm.hw_name.disabled=true;
	document.srch_frm.hw_name.style.visibility="hidden";
	document.srch_frm.vf_name.disabled=true;
	document.srch_frm.vf_name.style.visibility="hidden";
	document.srch_frm.comp_name.disabled=true;
	document.srch_frm.comp_name.style.visibility="hidden";
	document.srch_frm.idm_name.disabled=true;
	document.srch_frm.idm_name.style.visibility="hidden";
	document.srch_frm.phr_name.disabled=true;
	document.srch_frm.phr_name.style.visibility="hidden";
}
}

function advance_search(){
	var show_linked ='<a href="javascript:advance_search()" class=distinct>Show advance search</a>';
	var hide_linked ='<a href="javascript:advance_search()" class=distinct>Hide advance search</a>';
	//var opened = false	
		
	if(opened){
	document.getElementById("adv_srch_opt").style.visibility="hidden";
	document.getElementById("adv_srch_txt").innerHTML=show_linked
	opened = false	
	}else{
		document.getElementById("adv_srch_opt").style.visibility="visible";
		opened = true	
		document.getElementById("adv_srch_txt").innerHTML=hide_linked		
	}
}

function check_browser(){
	
if(navigator.appName=="Microsoft Internet Explorer"){
document.getElementById("keyboard_td").style.visibility="hidden";
}

}

function showhide(id){
}


function validForm(thisform)
{
	
	email =document.feedback.email.value;
	comments =document.feedback.Comments.value;
	
	if(email==""){
		alert("Email Should Not Be Empty !");
		document.feedback.email.focus();
		return false;
	}
	if(comments==""){
		alert("Comments Should Not Be Empty !");
		document.feedback.comments.focus();
		return false;
	}
	return true;
}
