var helpTimeout = null;
var helpToggle = true;
function popup(url, width, height) 
{
	var pWin = window.open(url,window.name+"_NewWin","height=" + height + ",width=" + width + ",location=no,toolbar=no,scrollbars=yes,resizable=yes,menubar=no");	
	pWin.focus();
}
function newwindow(url, width, height) 
{
	var Secondwin = window.open(url,"NewWin2","height=" + height + ",width=" + width + ",location=no,toolbar=no,scrollbars=yes,resizable=yes,menubar=no");
    Secondwin.focus();
}
function limitLength( control, length )
{
	if( control.value.length > length )
	{
		control.value = control.value.substr( 0, length );
	}
}

function InvokeValidateField(textbox,fieldName,fieldValue,originalFieldValue,errorMessage,url){

    if(fieldValue == '') return;
    if(fieldValue == originalFieldValue) return;
 
    try{
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    }catch (e1){
        try{
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }catch (e2){
            xmlhttp = false;
        }
    }
    
    if (!xmlhttp && typeof XMLHttpRequest!='undefined'){     
            xmlhttp = new XMLHttpRequest();
    }
      
    document.body.style.cursor='wait';
    xmlhttp.onreadystatechange= function(){XMLHttpValidateFieldCompleted(originalFieldValue,textbox,errorMessage);};
    var sURL = url + "validate_field.ashx?fieldname=" + fieldName + "&fieldvalue=" + fieldValue;
    xmlhttp.open("GET", sURL, true );
    xmlhttp.send(null);
}

function XMLHttpValidateFieldCompleted(originalFieldValue,textbox,errorMessage){ 
    if (xmlhttp.readyState==4 && xmlhttp.responseText == "exist"){
		alert(errorMessage);
		textbox.value = '';
		textbox.focus();
    }
    document.body.style.cursor='auto';
}

function setCookie(name, value)
{
    document.cookie= name + "=" + escape(value);
}

function getCookie(name)
{
    var dc = document.cookie;
    var prefix = name + "=";
    var begin = dc.indexOf("; " + prefix);
    if (begin == -1)
    {
        begin = dc.indexOf(prefix);
        if (begin != 0) return null;
    }
    else
    {
        begin += 2;
    }
    var end = document.cookie.indexOf(";", begin);
    if (end == -1)
    {
        end = dc.length;
    }
    return unescape(dc.substring(begin + prefix.length, end));
}

function deleteCookie(name)
{
    if (getCookie(name))
    {
        document.cookie = name + "=" + 
            "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
}

function getTop(o, sBreakAt) 
{
	var iTop = 0;
	if (o.offsetParent) {
		if(sBreakAt && (oParent = getElement(sBreakAt))) 
		{
			while (o.offsetParent && (o.offsetParent != oParent)){
				iTop += o.offsetTop;o = o.offsetParent;
			}
		}
		else
		{	
			while (o.offsetParent){
				iTop += o.offsetTop;o = o.offsetParent;
			}
		}
		
	} else if (o.y) {
		iTop += o.y;
	}
	return iTop;
}

function getLeft(o) 
{
	var iLeft = 0;
	if (o.offsetParent) {
		while (o.offsetParent) {
			iLeft += o.offsetLeft;o = o.offsetParent;
		}
	} else if (o.x) {
		iLeft += o.x;
	}
	return iLeft;
}

function setEvent(oElement, sEventType, fEventHandler) 
{
	if(window.attachEvent) {
		oElement.attachEvent('on'+sEventType, fEventHandler);
	} else if (window.addEventListener) {
		oElement.addEventListener(sEventType, fEventHandler, false);
	} else {
		
		if(oElement['on'+sEventType]) {		
			oldFunc = oElement['on'+sEventType];
			oElement['on'+sEventType] = function() {
				oldFunc;
				fEventHandler;
			}
		} else {
			oElement['on'+sEventType] = fEventHandler;
		}
	}
}

function getElementsByTagAndClass(a_sTagName, a_sClassName) 
{
	var aReturnElements = [];
	if(document.getElementsByTagName) {
		var aAllTags = document.getElementsByTagName(a_sTagName);
		for(j = 0; j < aAllTags.length; j++) {
			var oCurrentTag = aAllTags[j];
			if(oCurrentTag.className == a_sClassName) {
				aReturnElements[aReturnElements.length] = oCurrentTag;
			}
		}
	}
	return aReturnElements;
}

function getElement(a_sElementId) 
{
	var oElement = (document.getElementById) ? document.getElementById(a_sElementId) : (document.all) ? document.all[a_sElementId] : null;
	if(oElement == null) {	
		for(i = 0; i < document.forms.length; i++) {
			var form = document.forms[i];
			if(form.name == a_sElementId) {
				return form;
			} else {
				for(j = 0; j < form.elements.length; j++) {
					element = form.elements[j];
					if(element.name == a_sElementId) {
						return element;
					}
				}
			}
		}
		if(document.images[a_sElementId]) {
			return document.images[a_sElementId];
		} else if(document.anchors[a_sElementId]) {
			return document.anchors[a_sElementId];
		} else if (document.layers) { 
		}
	}
	return oElement;
}

function showFormHelp(sHeader, sInfo)
{
	var oHelp = getElement('formHelp');

	var oHelpHeader = getElement('formHelpHeader');
	var oHelpText = getElement('formHelpInfo');
	
	
	if(sHeader && sInfo)
	{
		oHelpHeader.innerHTML = sHeader;
		oHelpText.innerHTML = sInfo;
		if (helpToggle)
			oHelp.className = 'formHelpOn';
		oHelp.style.display = 'block';
	}
	else
		oHelp.style.display = 'none';
}

function hideFormHelp()
{
	var oHelp = getElement('formHelp');
	var oHelpToggle = getElement('formHelpMini');
	
	oHelpToggle.innerHTML = '?';
	oHelp.className = 'formHelpOff';
	
}

function toggleFormHelp()
{
	var oHelp = getElement('formHelp');
	var oHelpToggle = getElement('formHelpMini');
	if (oHelp.className == 'formHelpOff')
	{
		oHelp.className = 'formHelpOn';
		oHelpToggle.innerHTML = '&ndash;';
		helpToggle = true;
	}
	else
	{
		oHelp.className = 'formHelpOff';
		oHelpToggle.innerHTML = '?';
		helpToggle = false;
	}
	clearTimeout(helpTimeout);
}

function setFormHelp(thisElement)
{
	if (typeof(thisElement) == 'string')
		thisElement = getElement(thisElement);
	var y = getTop(thisElement);
	var x = getLeft(thisElement);
	var id = thisElement.id || thisElement.name;
	var oHelp = getElement('formHelp');
	var oHelpToggle = getElement('formHelpMini');
	
	if ( id.indexOf('Link') != -1 && !helpToggle)
		toggleFormHelp();
	oHelpToggle.innerHTML = '&ndash;';
	showFormHelp(helptips[id + 'Title'], helptips[id + 'Text']);
	if(y != 0 ) {
		if( isNaN( helptips[id + '_OffsetY'] ) )
			oHelp.style.top = y;
		else
			oHelp.style.top = y + parseInt( helptips[id + '_OffsetY'] );
	}
	if(x != 0 ) {
		if( isNaN( helptips[id + '_OffsetX'] ) )
			oHelp.style.left = x + thisElement.offsetWidth;
		else
			oHelp.style.left = x + thisElement.offsetWidth + parseInt( helptips[id + '_OffsetX'] );
	}
	
	clearTimeout(helpTimeout);
	helpTimeout = setTimeout("hideFormHelp()", Math.pow(oHelp.offsetHeight - 15,1.1) * 100 );
}

function attachHelpTexts()
{	
	for(var i = 0; i < document.forms[0].elements.length; i++) {
		if(document.forms[0].elements[i].getAttribute('id')) 
		{
			var element = document.forms[0].elements[i];
			element.onfocus = function (){setFormHelp(this);};
		}
	}
}

function toggleElementDisplay(id, newdisplay)
{
	var oElement = getElement(id);
	if (oElement.style.display == 'none')
		oElement.style.display = newdisplay;
	else
		oElement.style.display = 'none';
}

function btnImgSwap(thisElement, str)
{
	thisElement.src = thisElement.src.replace(/rollup|rolldown|rollover/ , str);
}

//Sidebar
function sidebarToggle( oElement, hiddenElement )
{
	if (typeof(hiddenElement) == 'string')
		hiddenElement = getElement(hiddenElement);
	if (typeof(oElement) == 'string')
		oElement = getElement(oElement);
	if(getElement("sidebarCell").style.display == "none") 
	{
		oElement.src = oElement.src.replace( /sidebarclosed/, "sidebaropen");
		getElement("sidebarCell").style.display = "";
		hiddenElement.value = "open";
	}
	else
	{
		oElement.src = oElement.src.replace( /sidebaropen/, "sidebarclosed");
		getElement("sidebarCell").style.display = "none";
		hiddenElement.value = "closed";
	}
}
function toggleSidebarPanel( oElement, elementPrefix )
{
	if (typeof(oElement) == 'string')
		oElement = getElement(oElement);
	btnElement = getElement( elementPrefix + 'Btn');
	hiddenElement = getElement( elementPrefix );
	if( oElement.style.display == "none" ) 
	{
		btnElement.src = btnElement.src.replace( /panelclosed/, "panelopen");
		hiddenElement.value = "open";
		oElement.style.display = "";
	} else {
		btnElement.src = btnElement.src.replace( /panelopen/, "panelclosed");
		hiddenElement.value = "closed";
		oElement.style.display = "none";
	}
	return false;
}

//Scroll Overflow
var _run;
var oScrollOriginal;
var oScrollDuplicate;

// if the browser is Firebird/Firefox or MSIE
if(navigator.userAgent.indexOf("Firebird")!=-1||navigator.userAgent.indexOf("Firefox")!=-1||navigator.appName=="Microsoft Internet Explorer")
	{_run = false;}
else
	{_run = true;}

function scrollR()
{
	var top = oScrollOriginal.scrollTop;
	oScrollDuplicate.scrollTop = top;
	window.setTimeout(scrollR,1);
}
function searchScroll()
{
	var top = (window.pageYOffset)?(window.pageYOffset):(document.documentElement)?document.documentElement.scrollTop:document.body.scrollTop;
	oScrollDuplicate.scrollTop = top;
	window.setTimeout("searchScroll();",1);
}
function addScroll( oOriginal, oDuplicate )
{
	oScrollOriginal = getElement(oOriginal);
	oScrollDuplicate = getElement(oDuplicate);
	
	oScrollOriginal.style.overflow = "scroll";
	oScrollOriginal.style.height = "500px";
	
	oScrollDuplicate.style.styleFloat = "left";
	oScrollDuplicate.style.clear = "left";
	oScrollDuplicate.style.overflow = "hidden";
	oScrollDuplicate.style.height = "500px";
	scrollR();
}
function lockRowHeights() 
{
	var o = getElement("content_questioninfo_pageList");
	var p = getElement("content_answerinfo_bidList");
	var pageCount = o.rows.length;
	if ( p )
		var supplierCount = p.rows[0].cells.length;
	else
		var supplierCount = 0;
	if( supplierCount > 0 )
	{
		for( k=0; k<o.rows.length; k++ )
		{
			var tableOne = getElement("content_questioninfo_pageList__ctl" + k + "_questionGrid");
			var tableTwo;
			var rowCount = tableOne.rows.length;
			var maxHeight = [];
			for( i=0; i<rowCount; i++ )
			{
				maxHeight[i] = tableOne.rows[i].offsetHeight;
				for( j=0; j<supplierCount; j++ )
				{
					tableTwo = getElement("content_answerinfo_bidList__ctl" + j + "_pageList__ctl" + k + "_questionGrid");
					if( maxHeight[i] < parseInt( tableTwo.rows[i].offsetHeight ) )
						maxHeight[i] = parseInt( tableOne.rows[i].offsetHeight );
				}
			}
			for( i=0; i<rowCount; i++ )
			{
				for( j=0; j<supplierCount; j++ )
				{
					tableTwo = getElement("content_answerinfo_bidList__ctl" + j + "_pageList__ctl" + k + "_questionGrid");
					tableOne.rows[i].style.height = (maxHeight[i] + 15 ) + "px";
					tableTwo.rows[i].style.height = (maxHeight[i] + 15 ) + "px";
				}
			}
		}
	}
}

function getCaretPosition(oField)
{
	var iCaretPos = 0;
	if (document.selection)// IE Support
	{
		// Set focus on the element
		oField.focus();
		// To get cursor position, get empty selection range
		var oSel = document.selection.createRange();
		// Move selection start to 0 position
		oSel.moveStart('character', -oField.value.length);
		// The caret position is selection length
		iCaretPos = oSel.text.length;
	}
	else if (oField.selectionStart || oField.selectionStart == '0')//Firefox support
		iCaretPos = oField.selectionStart;

 return iCaretPos;
}

/*
**  Sets the caret (cursor) position of the specified text field.
**  Valid positions are 0-oField.length.
*/
function setCaretPosition(oField, iCaretPos)
{
	if (document.selection)// IE Support
	{
		oField.focus();
		var oSel = document.selection.createRange();
		oSel.moveStart('character', -oField.value.length);
		oSel.moveEnd('character', -oField.value.length);
		// Move selection start and end to desired position
		oSel.moveStart('character', iCaretPos);
		oSel.moveEnd('character', 0);
		oSel.select();
	}
	else if (oField.selectionStart || oField.selectionStart == '0')//Firefox support
	{
		oField.selectionStart = iCaretPos;
		oField.selectionEnd = iCaretPos;
		oField.focus();
	}
}

function FocusChange(sourceControl, desControl, length)
{

    if (getElement(sourceControl).value.length == length)
    {
        getElement(desControl).focus();
    }
}
