function opacity(id, opacStart, opacEnd, millisec) {
	//speed for each frame
	var speed = Math.round(millisec / 100);
	var timer = 0;

	//determine the direction for the blending, if start and end are the same nothing happens
	if(opacStart > opacEnd) {
		for(i = opacStart; i >= opacEnd; i--) {
			setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
			timer++;
		}
	} else if(opacStart < opacEnd) {
		for(i = opacStart; i <= opacEnd; i++)
			{
			setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
			timer++;
		}
	}
}

//change the opacity for different browsers
function changeOpac(opacity, id) {
	var object = document.getElementById(id).style; 
	object.opacity = (opacity / 100);
	object.MozOpacity = (opacity / 100);
	object.KhtmlOpacity = (opacity / 100);
	object.filter = "alpha(opacity=" + opacity + ")";
}


function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/-/g, "\-");
	var oRegExp = new RegExp("(^|\s)" + strClassName + "(\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}

function getElementHeight(elemId)
{
	var elem = $(elemId);
	return elem.offsetHeight;
}

function addEvent( obj, type, fn ) {
	if (obj.addEventListener) {
		obj.addEventListener( type, fn, false );
		EventCache.add(obj, type, fn);
	}
	else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
	} 
	else {
		obj["on"+type] = obj["e"+type+fn];
	}
}
/*	EventCache Version 1.0
	Copyright 2005 Mark Wubben

	Provides a way for automagically removing events from nodes and thus preventing memory leakage.
	See <http://novemberborn.net/javascript/event-cache> for more information.
	
	This software is licensed under the CC-GNU LGPL <http://creativecommons.org/licenses/LGPL/2.1/>
*/
var EventCache = function(){
	var listEvents = [];
	return {
		listEvents : listEvents,
		add : function(node, sEventName, fHandler){
			listEvents.push(arguments);
		},
		flush : function(){
			var i, item;
			for(i = listEvents.length - 1; i >= 0; i = i - 1){
				item = listEvents[i];
				if(item[0].removeEventListener){
					item[0].removeEventListener(item[1], item[2], item[3]);
				};
				if(item[1].substring(0, 2) != "on"){
					item[1] = "on" + item[1];
				};
				if(item[0].detachEvent){
					item[0].detachEvent(item[1], item[2]);
				};
				item[0][item[1]] = null;
			};
		}
	};
}();
function getElementsByClass(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;
}
function $() {
	var elements = new Array();
	for (var i = 0; i < arguments.length; i++) {
		var element = arguments[i];
		if (typeof element == 'string')
			element = document.getElementById(element);
		if (arguments.length == 1)
			return element;
		elements.push(element);
	}
	return elements;
}

addEvent(window,'unload',EventCache.flush);

//===================== Start - added code for Please wait message ===================================

var disableSumbitTimeout = false; 
var disableEscapeMessage = false;
var disableSumbitTrigger = false;

function DisableSubmit(waitMessage)
{
  //if the active element is 'rate this page' or 'image feedback' then exit from function
  if (document.activeElement.pathname == 'O_LC()' || document.activeElement.pathname == 'O_xLC()') return false;

  if (disableSumbitTimeout) clearTimeout(disableSumbitTimeout);
  if (disableSumbitTrigger)
  {
    disableSumbitTrigger = false;
    return;
  }

  var i, elems;

  elems = document.getElementsByTagName('DIV');
  for (i = 0; i < elems.length; i++)
  {
    if(elems[i].id == "LeftNav_divIndustryMain" || elems[i].id =="LeftNav_divBusinessNeedMain" || elems[i].id == "LeftNav_divProductMain")
    {
        elems[i].disabled = true;
    }
    
  }
  elems = document.getElementsByTagName('INPUT');
  for (i = 0; i < elems.length; i++)
    elems[i].disabled = true;
  elems = document.getElementsByTagName('SELECT');
  for (i = 0; i < elems.length; i++)
    elems[i].disabled = true;
  elems = document.getElementsByTagName('TEXTAREA');
  for (i = 0; i < elems.length; i++)
    elems[i].disabled = true;
  elems = document.getElementsByTagName('BUTTON');
  for (i = 0; i < elems.length; i++)
    elems[i].disabled = true;

  window.onsubmit = new Function('return false;');
  __doPostBack = new Function('return;');
  
  if (waitMessage && objWM)
  {
    objWM.initWaitMsg(waitMessage, 5500, 0, '', "confMsgBox", 0, 0, 330, 40, 0, 13, 0.1, 13, 0.1);  
    objWM.viewWaitMsg();
    
    var strRE = ' ';
    strRE.match(/./);
    ((window.onunload + '').replace(/\\n/g, '')).match(/.*?\{(.*?)\}.*?/);
    window.onunload = new Function(RegExp.$1 + ';if (objWM) objWM.hideWaitMsg(true);');
  }
}

function InitDisableResubmit(waitMessage)
{
  var strRE = ' ';
  strRE.match(/./);
  ((window.onbeforeunload + '').replace(/\\n/g, '')).match(/.*?\{(.*?)\}.*?/);
  window.onbeforeunload = new Function(RegExp.$1 + ';if(disableEscapeMessage) return disableEscapeMessage; else {if (disableSumbitTimeout) clearTimeout(disableSumbitTimeout); disableSumbitTimeout = setTimeout(\'DisableSubmit("' + waitMessage + '")\',10);}');
}

var applicationPath = "../Marketplace/";
var iframeEmptyPage = applicationPath + 'blank.html';
var wMsgTM = false;
var objWaitMsg = new Array();

function BonaWaitMsg(msgText, msgTMStart, msgTMStop, msgHTML, msgClass, msgX, msgY, msgW, msgH, msgZ, msgFLView, msgFLVD, msgFLHide, msgFLHD, msgFLClose) {
	var i, objStyleLinks;
	var msgRndDate = new Date();
	var co = objWaitMsg.length;
	this.msgId = 'WaitMsgID' + msgRndDate.getTime() + Math.round(Math.random() * 1000000) + (co + '');
	this.msgText = (msgText) ? msgText : 'Request is Processing';
	this.msgTMStart = (msgTMStart) ? msgTMStart : 0;
	this.msgTMStop = (msgTMStop) ? msgTMStop : 0;
	this.msgHTML = bonaWaitMsgHTML;
	if(msgHTML) {
		if(msgHTML.substr(0, 6) == '##ID##') {
			if(document.getElementById(msgHTML.substr(6)) && document.getElementById(msgHTML.substr(6)).innerHTML) {
				this.msgHTML = OutputEncoder_EncodeHtmlAttribute(document.getElementById(msgHTML.substr(6)).innerHTML);
			}
		}
		else {
			this.msgHTML = OutputEncoder_EncodeHtmlAttribute(msgHTML);
		}
	}
	this.msgClass = (msgClass) ? msgClass : 'waitMsgBlock';
	this.msgX = (msgX) ? msgX : 0;
	this.msgY = (msgY) ? msgY : 0;
	this.msgW = (msgW) ? msgW : 0;
	this.msgH = (msgH) ? msgH : 0;
	this.msgZ = (msgZ) ? msgZ : 0;
	this.msgFLView = (msgFLView) ? msgFLView : null;
	this.msgFLViewD = (msgFLVD) ? msgFLVD : 0.2;
	this.msgFLHide = (msgFLHide) ? msgFLHide : null;
	this.msgFLHideD = (msgFLHD) ? msgFLHD : 0.2;
	this.msgFLClose = (msgFLClose) ? msgFLClose : false;
	
	this.spnMsg = document.createElement('SPAN');
	this.spnMsg.id = this.msgId + 'spn';
	document.body.insertBefore(this.spnMsg, document.body.firstChild);
	this.spnMsg = document.getElementById(this.msgId + 'spn');

		this.spnMsg.innerHTML = '<iframe id="' + this.msgId + '" name="' + this.msgId + 'ifrnm" src="' + iframeEmptyPage + '" frameborder="0" marginheight="0" marginwidth="0" hspace="0" vspace="0" scrolling="no" style="position: absolute; left: ' + this.msgX + 'px; top: ' + this.msgY + 'px; z-index: ' + ((this.msgZ) ? this.msgZ : 35000 + co) + '; filter: progid:DXImageTransform.Microsoft.Shadow(color=#858585, direction=135, strength=4, enabled=true); visibility: hidden;"></iframe>';
		this.objMsg = document.getElementById(this.msgId);
		this.contMsg = window.frames[this.msgId + 'ifrnm'];

	this.sfdTM = false;
	this.msgTM = false;
	objWaitMsg[co] = this;
	this.sfdTM = setInterval('setInFrmDiv("' + this.msgId + '");', 100);
}

function setInFrmDiv(id) {
	var i = 0;
	while(i < objWaitMsg.length && objWaitMsg[i].msgId != id) i++;
	if(i < objWaitMsg.length && window.frames[objWaitMsg[i].objMsg.name] && window.frames[objWaitMsg[i].objMsg.name].document && window.frames[objWaitMsg[i].objMsg.name].document.body && window.frames[objWaitMsg[i].objMsg.name].document.body.innerHTML.toLowerCase().indexOf('blank') != -1) {
		if(objWaitMsg[i].sfdTM) clearInterval(objWaitMsg[i].sfdTM);
		try {
		  window.frames[objWaitMsg[i].objMsg.name].document.body.innerHTML = '<div id="' + objWaitMsg[i].msgId + 'infrmdiv" class="' + objWaitMsg[i].msgClass + '" style="width: ' + ((objWaitMsg[i].msgW) ? objWaitMsg[i].msgW + 'px' : 'auto') + '; height: ' + ((objWaitMsg[i].msgH) ? objWaitMsg[i].msgH + 'px' : 'auto') + ';">' + (objWaitMsg[i].msgHTML.replace(/##TEXT##/g, objWaitMsg[i].msgText)) + '</div>';
			objWaitMsg[i].inFrmDiv = window.frames[objWaitMsg[i].objMsg.name].document.getElementById(objWaitMsg[i].msgId + 'infrmdiv');
		}
		catch(e){}
		if(objWaitMsg[i].inFrmDiv) {
			objWaitMsg[i].objMsg.width = objWaitMsg[i].inFrmDiv.offsetWidth;
			objWaitMsg[i].objMsg.height = objWaitMsg[i].inFrmDiv.offsetHeight;
			if(objWaitMsg[i].msgFLClose) {
				objWaitMsg[i].inFrmDiv.title = ((typeof(objWaitMsg[i].msgFLClose)).toUpperCase() == 'STRING') ? objWaitMsg[i].msgFLClose : 'Click to Close/Open message';
				objWaitMsg[i].inFrmDiv.style.cursor = 'hand';
				objWaitMsg[i].inFrmDiv.onclick = new Function('parent.hideWaitMsgDo("' + objWaitMsg[i].msgId + '", true);');
			}
		}
	}
}

BonaWM = BonaWaitMsg.prototype;

BonaWM.initWaitMsg = function(msgText, msgTMStart, msgTMStop, msgHTML, msgClass, msgX, msgY, msgW, msgH, msgZ, msgFLView, msgFLVD, msgFLHide, msgFLHD, msgFLClose) {
	this.msgText = (msgText) ? msgText : 'Request is Processing';
	this.msgTMStart = (msgTMStart) ? msgTMStart : 0;
	this.msgTMStop = (msgTMStop) ? msgTMStop : 0;
	this.msgHTML = bonaWaitMsgHTML;
	if(msgHTML) {
		if(msgHTML.substr(0, 6) == '##ID##') {
			if(document.getElementById(msgHTML.substr(6)) && document.getElementById(msgHTML.substr(6)).innerHTML) {
				this.msgHTML =OutputEncoder_EncodeHtmlAttribute(document.getElementById(msgHTML.substr(6)).innerHTML);
			}
		}
		else {
			this.msgHTML = OutputEncoder_EncodeHtmlAttribute(msgHTML);
		}
	}
	this.msgClass = (msgClass) ? msgClass : 'waitMsgBlock';
	this.msgX = (msgX) ? msgX : 0;
	this.msgY = (msgY) ? msgY : 0;
	this.msgW = (msgW) ? msgW : 0;
	this.msgH = (msgH) ? msgH : 0;
	this.msgZ = (msgZ) ? msgZ : 0;
	this.msgFLView = (msgFLView) ? msgFLView : null;
	this.msgFLViewD = (msgFLVD) ? msgFLVD : 0.2;
	this.msgFLHide = (msgFLHide) ? msgFLHide : null;
	this.msgFLHideD = (msgFLHD) ? msgFLHD : 0.2;
	this.msgFLClose = (msgFLClose) ? msgFLClose : false;
}

BonaWM.viewWaitMsg = function(st) {
  if(this.msgTM) clearTimeout(this.msgTM);
	this.msgTM = setTimeout('viewWaitMsgDo("' + this.msgId + '", ' + ((st) ? true : false) + ');', this.msgTMStart + 33);
}

function viewWaitMsgDo(id, st) {
	var i = 0, strRE = ' ';
	while(i < objWaitMsg.length && objWaitMsg[i].msgId != id) i++;
	if(i < objWaitMsg.length) {
		if(objWaitMsg[i].msgTM) clearTimeout(objWaitMsg[i].msgTM);
		if(objWaitMsg[i].inFrmDiv) { // && st ?
			objWaitMsg[i].inFrmDiv.className = objWaitMsg[i].msgClass;
			objWaitMsg[i].objMsg.style.position = 'absolute';
			if(objWaitMsg[i].msgW) {
				objWaitMsg[i].inFrmDiv.style.width = objWaitMsg[i].msgW;
				objWaitMsg[i].objMsg.width = objWaitMsg[i].inFrmDiv.offsetWidth;
			}
			if(objWaitMsg[i].msgH) {
				objWaitMsg[i].inFrmDiv.style.height = objWaitMsg[i].msgH;
				objWaitMsg[i].objMsg.height = objWaitMsg[i].inFrmDiv.offsetHeight;
			}
			if(objWaitMsg[i].inFrmDiv.innerHTML) {
				objWaitMsg[i].inFrmDiv.innerHTML = objWaitMsg[i].msgHTML.replace(/##TEXT##/g, objWaitMsg[i].msgText);
			}
		}
		objWaitMsg[i].objMsg.style.left = (objWaitMsg[i].msgX) ? objWaitMsg[i].msgX : ((getWindowWidth() - objWaitMsg[i].objMsg.offsetWidth) / 2) + getScrollX();
		objWaitMsg[i].objMsg.style.top = (objWaitMsg[i].msgY) ? objWaitMsg[i].msgY : ((((window.document.documentElement.clientHeight <= window.document.documentElement.scrollHeight) ? window.document.documentElement.clientHeight : window.document.documentElement.scrollHeight) - objWaitMsg[i].objMsg.offsetHeight) / 2) + window.document.documentElement.scrollTop;
		if(objWaitMsg[i].objMsg.style.visibility == 'hidden') {
			if(isIE && isDOM && objWaitMsg[i].msgFLView) {
				if(objWaitMsg[i].objMsg.currentStyle.filter.indexOf("DXImageTransform.Microsoft.RevealTrans") == -1) {
					objWaitMsg[i].objMsg.style.filter = objWaitMsg[i].objMsg.currentStyle.filter + ' progid:DXImageTransform.Microsoft.RevealTrans()';
				}
				objWaitMsg[i].objMsg.filters.item("DXImageTransform.Microsoft.RevealTrans").Apply();
				objWaitMsg[i].objMsg.filters.item("DXImageTransform.Microsoft.RevealTrans").Transition = objWaitMsg[i].msgFLView - 1;
				objWaitMsg[i].objMsg.filters.item("DXImageTransform.Microsoft.RevealTrans").Duration = objWaitMsg[i].msgFLViewD;
				objWaitMsg[i].objMsg.style.visibility = 'visible';
				objWaitMsg[i].objMsg.filters.item("DXImageTransform.Microsoft.RevealTrans").Play();
			}
			else {
				objWaitMsg[i].objMsg.style.visibility = 'visible';
			}
		}
		strRE.match(/./);
		((document.body.onresize + '').replace(/\n/g, '')).match(/.*?\{(.*?)\}.*?/);
		document.body.onresize = new Function(RegExp.$1 + '; viewWaitMsgRefresh("' + objWaitMsg[i].msgId + '");');
		strRE.match(/./);
		((document.body.onscroll + '').replace(/\n/g, '')).match(/.*?\{(.*?)\}.*?/);
		document.body.onscroll = new Function(RegExp.$1 + '; viewWaitMsgRefresh("' + objWaitMsg[i].msgId + '");');
		if(objWaitMsg[i].msgTMStop) {
			objWaitMsg[i].msgTM = setTimeout('hideWaitMsgDo("' + objWaitMsg[i].msgId + '", ' + false + ');', objWaitMsg[i].msgTMStop);
		}
	}
}

function viewWaitMsgRefresh(id) {
	var i = 0;
	while(i < objWaitMsg.length && objWaitMsg[i].msgId != id) i++;
	if(i < objWaitMsg.length) {
		objWaitMsg[i].objMsg.style.left = (objWaitMsg[i].msgX) ? objWaitMsg[i].msgX : ((getWindowWidth() - objWaitMsg[i].objMsg.offsetWidth) / 2) + getScrollX();
		objWaitMsg[i].objMsg.style.top = (objWaitMsg[i].msgY) ? objWaitMsg[i].msgY : ((((window.document.documentElement.clientHeight <= window.document.documentElement.scrollHeight) ? window.document.documentElement.clientHeight : window.document.documentElement.scrollHeight) - objWaitMsg[i].objMsg.offsetHeight) / 2) + window.document.documentElement.scrollTop;
	}
}

BonaWM.hideWaitMsg = function(st) {
  if(this.msgTM) clearTimeout(this.msgTM);
	hideWaitMsgDo(this.msgId, st);
}

function hideWaitMsgDo(id, st) {
	var i = 0;
	while(i < objWaitMsg.length && objWaitMsg[i].msgId != id) i++;
	if(i < objWaitMsg.length) {
		if(objWaitMsg[i].msgTM) clearTimeout(objWaitMsg[i].msgTM);
		if(objWaitMsg[i].objMsg.style.visibility == 'visible') {
			if(!st && isIE && isDOM && objWaitMsg[i].msgFLHide) {
				if(objWaitMsg[i].objMsg.currentStyle.filter.indexOf("DXImageTransform.Microsoft.RevealTrans") == -1) {
					objWaitMsg[i].objMsg.style.filter = objWaitMsg[i].objMsg.currentStyle.filter + ' progid:DXImageTransform.Microsoft.RevealTrans()';
				}
				objWaitMsg[i].objMsg.filters.item("DXImageTransform.Microsoft.RevealTrans").Apply();
				objWaitMsg[i].objMsg.filters.item("DXImageTransform.Microsoft.RevealTrans").Transition = objWaitMsg[i].msgFLHide - 1;
				objWaitMsg[i].objMsg.filters.item("DXImageTransform.Microsoft.RevealTrans").Duration = objWaitMsg[i].msgFLHideD;
				objWaitMsg[i].objMsg.style.visibility = 'hidden';
				objWaitMsg[i].objMsg.filters.item("DXImageTransform.Microsoft.RevealTrans").Play();
			}
			else {
				objWaitMsg[i].objMsg.style.visibility = 'hidden';
			}
		}
	}
}

bonaWaitMsgHTML = '##TEXT##';

var objWM, confirmMessage, saveQueryWaitMessage;

function CreateWaitMessageObjects() {//debugger;
  if(document && document.body && document.body.innerHTML) {
    if(cwmObjectsTM) clearInterval(cwmObjectsTM);
    objWM = new BonaWaitMsg();
    confirmMessage = new BonaWaitMsg();
    saveQueryWaitMessage = new BonaWaitMsg();
  }
}

var cwmObjectsTM = setInterval('CreateWaitMessageObjects();', 250);

//===================== End - added code for Please wait message ===================================