var gstrSUCCESS = "SUCCESS";
var speed=10;
var topdistance=0;
var y=0;
var x=0;
var timeOn = null;
var oMenuList = null;
var mx=my=0;
var images = new Array();
var imgCollapse = new Image;
var imgExpand = new Image;
var imgArrowOn = new Image;
var imgArrowOff = new Image;
var imgOn =new Image;
var imgOff =new Image;
var imgSub =new Image;

var gstrRATE_STS_ACCEPTED = "A";
var gstrRATE_STS_DECLINED = "D";
var gstrRATE_STS_RESET = "R";
var gstrRATE_STS_NOTHING = "N";
var gstrRATE_STS_EXISTING_BUSINESS = "E";
var gstrRATE_STS_MERGED = "M";

//Booking Status
var gstrBOOKING_STS_BOOKED = "B";
var gstrBOOKING_STS_PENDING = "P";
var gstrBOOKING_STS_REQUESTED = "R";

//Customer Accepted Rate Indicator
var gstrACCPT_RATE_IND_OFFERED = "O";
var gstrACCPT_RATE_IND_COUNTER = "C";

function scrollTop(strSelFilter) {
	y-=5;
	if (y < 0) y=0;
	eval(strSelFilter + ".style.pixelTop=" + y);
	if (y>topdistance) setTimeout("scrollTop('"+strSelFilter+"')",speed);
}
function scrollLeft(strSelFilter) {
	x-=10;
	if (x < 0) x=0;
	document.getElementById(strSelFilter).style.pixelLeft = x;
	if (x>0) setTimeout("scrollLeft('"+strSelFilter+"')",speed);
}
function scrollBottom(strParentId) {
	y+=2;
	document.getElementById(strParentId).children[1].style.pixelTop = y;
	if (y<topdistance) setTimeout("scrollBottom('"+strParentId+"')",speed);
}
function scrollTop2(strParentId) {
	y-=5;
	if (y < 0) y=0;
	document.getElementById(strParentId).children[1].style.pixelTop = y;
	if (y>topdistance) setTimeout("scrollTop2('"+strParentId+"')",speed);
}
function scrollLeft2(strParentId) {
	x-=20;
	if (x < 0) x=0;
	document.getElementById(strParentId).children[1].style.pixelLeft = x;
	if (x>0) setTimeout("scrollLeft2('"+strParentId+"')",speed);
}

function toggleElement(id, strClass)
{
	document.getElementById(id).className = strClass;
}

function toggleRow(id)
{
	if (document.getElementById(id).style.display == 'none')
		document.getElementById(id).style.display = 'block';
	else
		document.getElementById(id).style.display = 'none';
}

function HideShowDiv(id, strAction)
{
	document.getElementById(id).style.display = strAction;
}

function HideMessage()
{
	FadeMessage('opaqueFade75');
}

function FadeMessage(strClass)
{
	document.getElementById('divMsg').className = strClass;
	var cTime;
	if (strClass == 'opaqueFade75')
		cTime = setTimeout("FadeMessage('opaqueFade50')",300);
	else if (strClass == 'opaqueFade50')
		cTime = setTimeout("FadeMessage('opaqueFade25')",200);
	else if (strClass == 'opaqueFade25')
		cTime = setTimeout("FadeMessage('opaqueHide')",200);
	else if (strClass == 'opaqueHide') {
		document.getElementById('divMsg').style.display = 'none';
		clearTimeout(cTime);
	}
}

function SelectAll(strName)
{
    var obj = document.getElementById(strName);

    for (var i=0; i < obj.length; i++)
        obj.options[i].selected = true;
}

function GoToPage(strPage, strViewInd)
{
	var strSearchStr = "jSessionID=" + document.forms[0]["jSessionID"].value;
	if (typeof(strViewInd) != 'undefined')
		strSearchStr += "&view="+strViewInd;

	var iSize = GoToPage.arguments.length-2;
	//add additional parameters
	for (var i=0; i<iSize; i++)
		strSearchStr += "&" + GoToPage.arguments[i+2];
	document.forms[0].action = strPage+".jsp?"+strSearchStr;
	submitPage();
}

function submitPage()
{
	document.forms[0].target = "_self";
	document.forms[0].submit();
}

function menuOver(oAnchor, imgType) {
	clearTimeout(timeOn);
	if (typeof(imgType) != 'undefined'
	&& (oAnchor.children[0].id == '' || oAnchor.children[0].id.substring(0,6) == 'imgSub')) {
		oAnchor.children[0].src = images[imgType].src;
		if (oAnchor.children[0].id.substring(0,6) != 'imgSub')
			HideSubMenus();
	}
}

function menuOut(oAnchor) {
	oMenuList = oAnchor.parentNode;
	if (oAnchor.children[0] != null
	&& (oAnchor.children[0].id == '' || oAnchor.children[0].id.substring(0,6) == 'imgSub'))
		oAnchor.children[0].src = images["off"].src;
	timeOn = setTimeout("hideMenuList()", 1000);
}

function hideMenuList() {
	HideSubMenus();
	
	//check if submenu first
	if (oMenuList != null) {
		if (typeof(oMenuList.ref) != 'undefined')
			document.getElementById(oMenuList.ref).style.display="none";
		else {
			if(document.getElementById(oMenuList.getAttribute('ref')) != null)
				document.getElementById(oMenuList.getAttribute('ref')).style.display="none";
			else
				oMenuList.style.display = 'none';
		}
		clearTimeout(timeOn);
	}
}

function ShowMenu(menu_id, elem_id, ibottomPad)
{
	HideMenus();
	SetPopupTxtOnElement(menu_id, elem_id, ibottomPad);
	var object = document.getElementById(menu_id).style;
	object.filter = "alpha(opacity=25)";
	object.display="inline";

	setTimeout("changeOpac('"+menu_id+"','50')",300);
	setTimeout("changeOpac('"+menu_id+"','75')",400);
	setTimeout("changeOpac('"+menu_id+"','100')",500);
	oMenuList = document.getElementById(menu_id);
	timeOn = setTimeout("hideMenuList()", 4000);
}

function changeOpac(id, opacity) {
    var object = document.getElementById(id).style;
    object.filter = "alpha(opacity=" + opacity + ")";
}

function ShowSubMenu(subMenuId, parentMenuId, e)
{
	SetSubMenuTxtOnElement(subMenuId, parentMenuId, e);
	var object = document.getElementById(subMenuId).style;
	var opacity = 25;
	object.filter = "alpha(opacity=" + opacity + ")";
	object.display="inline";

	setTimeout("changeOpac('"+subMenuId+"','50')",300);
	setTimeout("changeOpac('"+subMenuId+"','75')",400);
	setTimeout("changeOpac('"+subMenuId+"','100')",500);
}

function HideMenus()
{
	var oMenus = document.getElementById('divMenus');
	for (var i=0; i<oMenus.children.length;i++)
		oMenus.children[i].style.display = 'none';
}

function HideSubMenus()
{
	var oSubMenus = document.getElementById('divSubMenus');
	if (oSubMenus != null)
		for (var i=0; i<oSubMenus.children.length;i++)
			oSubMenus.children[i].style.display = 'none';
}

function RemoveStatusRow()
{
	var tbl = document.getElementById('tbRates');
	tbl.deleteRow(tbl.rows[0]);
	document.body.style.cursor='default';
}

function SetSubMenuTxtOnElement(subMenuId, parentMenuId, e)
{
	var shift = new Array(2);
	var iWidth = parseInt($("#"+parentMenuId).width());
	var iOffsetY ;
	if (isMoz) 
		iOffsetY = e.layerY;
	else
		iOffsetY = event.offsetY;
	var iCurrent = 0;
	var iFrom = -1;
	if (isMoz) {
		if (e.target.id != '')
			iCurrent = parseInt(e.target.id);

		if (e.relatedTarget.id != '')
			iFrom = parseInt(e.relatedTarget.id);
		else if (iCurrent > 1 && iCurrent < 3) iFrom = 99;  else iFrom = 0;
	}
	else {

		if (event.srcElement.id != '')
			iCurrent = parseInt(event.srcElement.id);

		if (event.fromElement.id != '')
			iFrom = parseInt(event.fromElement.id);
		else if (iCurrent > 1 && iCurrent < 3) iFrom = 99;  else iFrom = 0;
	}
	
	if (iCurrent == 1 && iFrom == 0 && iOffsetY != 0) iOffsetY -= 28;
	else if (iCurrent != 3 && iCurrent < iFrom) iOffsetY -= 28;
	else if (iCurrent == 3 && iFrom == 0) iOffsetY -= 28;

	GetCoordinates(parentMenuId, shift);
	document.getElementById(subMenuId).style.left  = shift[0] + iWidth + "px";
	document.getElementById(subMenuId).style.top = shift[1] + iOffsetY + "px";
}

function GetCoordinates(elem, shift)
{
	var x;var y;x = 0;y = 0;
	if (typeof(elem.innerHTML) == 'undefined')
		elem = document.getElementById(elem);
	do
	{
		x += elem.offsetLeft;
		y += elem.offsetTop;
		if (elem == null || elem.tagName == "BODY" || elem.tagName == "HTML")
			break;
		elem = elem.offsetParent;
	} while  (1 > 0);
	shift[0] = x;shift[1] = y;
}

function ShowFilterButton()
{
	if (document.getElementById('spnDfltFilter') != null)
		document.getElementById('spnDfltFilter').style.display = "none";
	document.getElementById('spnFilterButton').style.display = "inline";
}

function HideFilterButton()
{
	if (document.getElementById('spnDfltFilter') != null)
		document.getElementById('spnDfltFilter').style.display = "inline";
	document.getElementById('spnFilterButton').style.display = "none";
}

function DisplayMessage(strId)
{
	if ($('#sMsg').val() == gstrSUCCESS || $('#sMsg').val() == '0')
		$('#div'+strId+'Msg').html("Action successful");
	else if ($('#sMsg').val() == '-9')
		$('#div'+strId+'Msg').html("Action unsuccessful. There already exists an entry for this name.");
	else
		$('#div'+strId+'Msg').html("An error occured. Please try again later.");

	$('#div'+strId+'Msg').css('display', 'block');
	$('#save'+strId+'Button').attr("disabled", false);
	$('#close'+strId+'Button').attr("disabled", false);
}

function BuildFilterValues(oSel, bGetAll)
{
	var iCount = 0;
	var strFilter = "";
	if (oSel.selectedIndex != -1)
		for (var i=0;i<oSel.options.length;i++) {
		 	if (oSel.options[i].selected) {
			 	iCount++;
			 	if (strFilter != "")
			 		strFilter += "|";
			 	strFilter += oSel.options[i].value;
		 	}
		}

	//check for 'all' or nothing selected - they mean the same
	if (typeof(bGetAll) == 'undefined' || !bGetAll) {
		if (iCount == 0 || (iCount == oSel.options.length && iCount > 1))
			strFilter = null;
	}
	else if (iCount == 0)
		strFilter = null;
	return strFilter;
}

function getSelectedValue(oSel)
{
	var strSelected = null;
	if (oSel.selectedIndex != -1)
		strSelected = oSel.options[oSel.selectedIndex].value;
	return strSelected;
}

function getSelectedText(oSel)
{
	var strSelected = null;
	if (oSel.selectedIndex != -1)
		strSelected = oSel.options[oSel.selectedIndex].text;
	return strSelected;
}
function getFilterInfo(oSel)
{
	var iCount = 0;
	var straInfo = new Array();
	if (oSel.selectedIndex != -1)
		for (var i=0;i<oSel.options.length;i++) {
		 	if (oSel.options[i].selected) {
			 	straInfo[iCount]=new Array(2);
			 	straInfo[iCount][0] = oSel.options[i].value;
			 	straInfo[iCount][1] = oSel.options[i].text;
			 	iCount++;
		 	}
		}
	return straInfo;
}

function removeCurrentRates()
{
	var tbl = document.getElementById('tbRates');
	var len = tbl.rows.length;

	for (var i = len; i != 0; i--)
		tbl.deleteRow(tbl.rows[i]);
}
