var currDateField;
var currDateSelector;
var m_hiddenAccountList;

//******************  Functions to do Ajax-style transfers  ************************//

function moneyFormat(Amount){

	var DecimalSeparator = Number("1.2").toLocaleString().substr(1,1);

	var AmountWithCommas = Amount.toLocaleString();
	var arParts = String(AmountWithCommas).split(DecimalSeparator);
	var intPart = arParts[0];
	var decPart = (arParts.length > 1 ? arParts[1] : '');
	decPart = (decPart + '00').substr(0,2);

	return '$ ' + intPart + DecimalSeparator + decPart;

}

function decimalFormat(Amount){

	var DecimalSeparator = Number("1.2").toLocaleString().substr(1,1);

	var AmountWithCommas = Amount.toLocaleString();
	var arParts = String(AmountWithCommas).split(DecimalSeparator);
	var intPart = arParts[0];
	var decPart = (arParts.length > 1 ? arParts[1] : '');
	decPart = (decPart + '00').substr(0,2);

	return intPart + DecimalSeparator + decPart;

}

function setElementFromXML(spanname, xmlElement) {
    var span_el = document.getElementById(spanname);
    while (span_el.hasChildNodes())
        span_el.removeChild(span_el.childNodes[0]);
    span_el.innerHTML = xmlElement;
}

function getHTMLFromXML(xmlElement) {
    //The browsers limit the number of characters in an XML tag to 4096 characters
    //but splits them into child nodes.  We iterate through these child nodes to get
    //the full text from an XML element
    var textNodes = xmlElement.childNodes;
    var result = "";
    for (i = 0; i < textNodes.length; i++) {
        var part = textNodes.item(i);
        result += part.nodeValue;
    }

    return result;
}


function get_radio_value( radio_element ){
    var elements = document.getElementsByName( radio_element );

    for (var i=0; i < elements.length; i++){
        if (elements[i].checked){
            return elements[i].value
        }
      }

      return '';
}

//********************************************************************************//

function setText(spanname, text) {
    var span_el = document.getElementById(spanname);
    if( span_el ){
        while (span_el.hasChildNodes())
            span_el.removeChild(span_el.childNodes[0]);
        var new_txt = document.createTextNode(text);
        span_el.appendChild(new_txt);
    }
    return false;
}

function getText(spanname) {

    var span_el = document.getElementById(spanname);
    var txt = "";
    for (var i = 0; i < span_el.childNodes.length; i++)
        txt = txt + span_el.childNodes[i].nodeValue;

    return txt;
}


function showElement(cell) {
    //This method accepts either an element or an elementid
    if (!cell || !cell.style)
        cell = document.getElementById(cell);

    if (!cell)
        return;

    cell.style.display  = '';

}

function hideElement(cell) {
    //This method accepts either an element or an elementid
    if (!cell || !cell.style)
        cell = document.getElementById(cell);

    if (cell)
        cell.style.display  = 'none';

}

function isHidden(cell) {
    //This method accepts either an element or an elementid
    if (!cell || !cell.style)
        cell = document.getElementById(cell);

    if (cell && cell.style.display == 'none')
        return true;
    else
        return false;
}

function toggleVisible(cell) {
    //This method accepts either an element or an elementid
    if (!cell || !cell.style)
        cell = document.getElementById(cell);

    if (isHidden(cell))
        showElement(cell);
    else
        hideElement(cell);

}

//********************************************************************************//

//Prepares the account name source
function AccountListHelper(listname) {

    m_hiddenAccountList = document.getElementById(listname);

}

function getAccountName(code) {

    if (setSelectedValue(m_hiddenAccountList, code) > 0)
        return getSelectedText(m_hiddenAccountList);
    else
        return '';

}

function showAccountName(accountfieldname, accountspanname) {

    var thedoc = document.forms[0];
    var accountfield = document.getElementById(accountfieldname);

    if (accountfield) {

        var accounttext = "";

        if (accountfield.value != '')
            accounttext = getAccountName(accountfield.value);

        setText(accountspanname, accounttext);

    }
}

//********************************************************************************//

//Set a date range selector to "custom"

function setToCustom(selector) {
    if (selector) {
        if (setSelectedValue(selector, 'Custom Date') == -1)
            if (setSelectedValue(selector, 'custom') == -1)
                setSelectedValue(selector, 'Custom')
    }
}

//********************************************************************************//

function getSelectedIndex(selector) {

   var n = selector.options.length;

   for (var i = 0; i < n; i++) {
      if (selector.options[i].selected == true)
         return i;
   }
}

function getSelectedValue(selector) {

   if (!selector)
       return "";

   var n = selector.options.length;

   for (var i = 0; i < n; i++) {
      if (selector.options[i].selected == true)
         return selector.options[i].value;
   }

}

function getSelectedAttribute(selector, attribute) {

   var n = selector.options.length;

   for (var i = 0; i < n; i++) {
      if (selector.options[i].selected == true) {
         var att = selector.options[i].getAttribute(attribute);
         if (att)
             return att;
         else
             return '';
      }
   }
}

function getSelectedText(selector) {

   var n = selector.options.length;

   for (var i = 0; i < n; i++) {
      if (selector.options[i].selected == true)
         return selector.options[i].text;
   }
}

function getSelectedLabel(selector) {

   var n = selector.options.length;

   for (var i = 0; i < n; i++) {
      if (selector.options[i].selected == true)
         return selector.options[i].label;
   }
}

function getIndexOfValue(selector, value) {

   var n = selector.options.length;

    for (var i = 0; i < n; i++) {
        if (selector.options[i].value == value)
            return i;
   }
   return -1;
}

function removeSelectValue(selector, value) {

   var n = selector.options.length;

    for (var i = 0; i < n; i++) {
        if (selector.options[i].value == value) {
            selector.options[i] = null;
            return;
        }
   }
}

function setSelectedValue(selector, value) {

    var n = selector.options.length;
    var items = selector.options;

    for (var i = 0; i < n; i++) {
        if (items[i].value == value) {
            items[i].selected = true;
            return i
        }
        else
            items[i].selected = false;
    }

    //This is needed for some pages to work correctly (Transaction.po),
    //hopefully it doesn't make others NOT work.  01/05/2005
    if (selector.options[0])
        selector.options[0].selected = true;

   return -1;
}

function setSelectedText(selector, value) {

    var n = selector.options.length;
    var items = selector.options;

    for (var i = 0; i < n; i++) {
        if (items[i].text == value) {
            items[i].selected = true;
            return i
        }
        else
            items[i].selected = false;
    }

    //This is needed for some pages to work correctly (Transaction.po),
    //hopefully it doesn't make others NOT work.  01/05/2005
    if (selector.options[0])
        selector.options[0].selected = true;

   return -1;
}

//********************************************************************************//

function changeDateFilter(value, startfield, endfield) {
    changeDateField(value, startfield, endfield);

    if (value != 'Custom Date' && value != 'Custom' && value != 'custom')
        document.forms[0].submit();

}


function customNewDate(){
	var result = new Date();
	try{
		result = new Date(result.getTime()+customOffset);
	} catch(error){
		result = new Date();
	}
	return result;
}

function changeDateField(value, startfield, endfield) {
    var fullDate = customNewDate();
    var date  = fullDate.getDate();
    var month = fullDate.getMonth() + 1;
    var year  = fullDate.getFullYear();
    var lastmonth;
    var lastyear = year - 1;

    if (month == 1)
        lastmonth = 12;
    else lastmonth = month - 1;

    if (value == 'Custom Date')
    {
        startfield.value = "mm/dd/yyyy";
        endfield.value = "mm/dd/yyyy";
    } else if (value == 'Today') {
        startfield.value = dateDigitFormat(month) + '/' + dateDigitFormat(date) + '/' + year;
        endfield.value   = dateDigitFormat(month) + '/' + dateDigitFormat(date) + '/' + year;
		} else if (value == 'Yesterday') {
				date = date -1;
				if(date == 0){
					month = lastmonth;
					date = daysInMonth(month);
					if(month == 12)
						year = lastyear;
				}
				startfield.value = dateDigitFormat(month) + '/' + dateDigitFormat(date) + '/' + year;
				endfield.value   = dateDigitFormat(month) + '/' + dateDigitFormat(date) + '/' + year;
		} else if (value == 'Last Week') {
				var weekStart = customNewDate();
				var weekEnd = customNewDate();
				getLastWeekDates(weekStart, weekEnd);
        startfield.value = dateDigitFormat(weekStart.getMonth()+1) + '/' + dateDigitFormat(weekStart.getDate()) + '/' + weekStart.getFullYear();
        endfield.value   = dateDigitFormat(weekEnd.getMonth()+1) + '/' + dateDigitFormat(weekEnd.getDate()) + '/' + weekEnd.getFullYear();
		} else if (value == 'Month-Date') {
        startfield.value = dateDigitFormat(month) + '/' + "01" + '/' + year;
        endfield.value   = dateDigitFormat(month) + '/' + dateDigitFormat(date) + '/' + year;
    } else if (value == 'Last Month') {
        if (month == 1) year = year - 1;
        startfield.value = dateDigitFormat(lastmonth) + '/' + "01" + '/' + year;
        endfield.value   = dateDigitFormat(lastmonth) + '/' + daysInMonth(lastmonth) + '/' + year;
    } else if (value == 'Year-Date') {
        startfield.value = "01" + '/' + "01" + '/' + year;
        endfield.value   = dateDigitFormat(month) + '/' + dateDigitFormat(date) + '/' + year;
    } else if (value == 'Last Year') {
        startfield.value = "01" + '/' + "01" + '/' + lastyear;
        endfield.value   = "12" + '/' + "31" + '/' + lastyear;
    } else {
        startfield.value = "";
        endfield.value = "";
    }

    return false;
}


function daysInMonth(month) {
	if (month == 1) return 31;
	else if (month == 3) return 31;
	else if (month == 4) return 30;
	else if (month == 5) return 31;
	else if (month == 6) return 30;
	else if (month == 7) return 31;
	else if (month == 8) return 31;
	else if (month == 9) return 30;
	else if (month == 10) return 31;
	else if (month == 11) return 30;
	else if (month == 12) return 31;
	else if (month == 2) {
		var year = inDate.getYear();
		if(year % 400 === 0 || (year % 100 !== 0 && year % 4 === 0)){
			return 29;
		} else {
			return 28;
		}
	}
	return;
}


function getLastWeekDates(weekStart, weekEnd){
	date = customNewDate();
	date.setSeconds(0);
	date.setMilliseconds(0);
	date.setMinutes(0);
	date.setHours(0);
	time = date.getTime();

	var n = date.getDay()-1;
	if(n == -1) n = 6;
	weekStart.setTime(time-(n+7)*1000*60*60*24);
	weekEnd.setTime(time-(n+1)*1000*60*60*24);

	return;
}

function dateDigitFormat(date) {
    if (date < 10)
        return ('0' + date);
    else
        return date;
}

function dateFormat(date){
	if(!date) var date = customNewDate();
	return dateDigitFormat(date.getMonth()+1) +"/"+dateDigitFormat(date.getDate())+"/"+date.getFullYear();
}

function getDates(terms, startfield, duefield) {

    var val = getSelectedValue(terms);
    //var myDate = customNewDate();
    cleandate( startfield.value, startfield );

    if (chkDate(startfield.value, 'Date')) {
        var myDate = startfield.value;

        if (myDate != '') {

            var pos1 = myDate.indexOf("/");
            var pos2 = myDate.indexOf("/",pos1+1);

            var strMonth = myDate.substring(0,pos1);
            var strDay   = myDate.substring(pos1+1,pos2);
            var strYear  = myDate.substring(pos2+1);

            var imonth = parseInt(strMonth, 10);
            var iday   = parseInt(strDay,   10);
            var iyear  = parseInt(strYear,  10);

            myDate = new Date(iyear, imonth-1, iday);
        }

        if (myDate == '')
            myDate = customNewDate();

        if (val == "Upon Rcpt")
            myDate.setDate(myDate.getDate());

        if (val == "Net 10")
            myDate.setDate(myDate.getDate()+10);

        if (val == "Net 15")
            myDate.setDate(myDate.getDate()+15);

        if (val == "Net 30")
            myDate.setDate(myDate.getDate()+30);

        if (val == "Net 60")
            myDate.setDate(myDate.getDate()+60);

        if (val == "Net 90")
            myDate.setDate(myDate.getDate()+90);

        if (val == "Date")
            myDate = customNewDate();

        var mo = myDate.getMonth()+1;
        var dy = myDate.getDate();

        if (mo < 10) {
            mo = mo+'/';
            mo = '0'+mo;
        }
        else mo = mo+'/';

        if (dy <10) {
            dy = dy+'/';
            dy = '0'+dy;
        }
        else dy = dy+'/';

        duefield.value = mo+dy+myDate.getFullYear();
    }
}

function closeWindow(theWin) {
    if (null != theWin) {
        if (typeof(theWin.opener) == 'object' && null != theWin.document)
            theWin.close();
    }
}


function doSubmit(){
	var thedoc = document.forms[0];
	thedoc.submit();
	return false;
}

function showPopup(element, popupName, stopElement, xdiff,ydiff){
	var popup=document.getElementById(popupName);
	if (!xdiff)
		xdiff = 0;

	if (!ydiff)
		ydiff = 20;

	placePopup(popup, element, stopElement , xdiff, ydiff);
	return false;
}


var globalPopupPlaceholder;
var globalSubPopupPlaceholder;
var globalPopupAnchor;
var globalPopupCounter;
function placePopup(popupElement, anchorElement, stopElement, diffX, diffY) {

	if (globalPopupPlaceholder == popupElement && globalPopupAnchor == anchorElement) {
		closePopup();
		return;
	} else {
		hideElement(globalSubPopupPlaceholder);
		hideElement(globalPopupPlaceholder);
		globalPopupPlaceholder = null;
		globalPopupAnchor      = null;
	}

	if (!popupElement || !popupElement.style)
		popupElement = document.getElementById(popupElement);

	if (!anchorElement || !anchorElement.style)
		anchorElement = document.getElementById(anchorElement);

	if (popupElement.style.position != 'absolute')
		popupElement.style.position = 'absolute';

	var x = elementPositionX(anchorElement, stopElement)+diffX;
	var y = elementPositionY(anchorElement, stopElement)+diffY;


	popupElement.style.left = x + 'px';
	popupElement.style.top = y + 'px';

	showElement(popupElement);

	globalPopupPlaceholder = popupElement;
	globalPopupAnchor      = anchorElement;
	globalPopupCounter     = 0;

	document.onclick = closePopup;
	window.onresize = closePopup;
}


function showSubMenu(popupName) {

	var popupElement = document.getElementById(popupName);

	hideElement(globalSubPopupPlaceholder);
	showElement(popupName);
	globalSubPopupPlaceholder = popupElement;

	return false;
}


function hideSubMenu() {

	hideElement(globalSubPopupPlaceholder);

	return false;
}

function closePopup() {

	if (globalPopupCounter == 1) {
		hideElement(globalSubPopupPlaceholder);
		hideElement(globalPopupPlaceholder);
		globalPopupPlaceholder = null;
		globalPopupAnchor      = null;
		globalPopupCounter     = 0;
	} else {
		globalPopupCounter = 1;
	}
}

function elementPositionX(element, stopElement){
	var x = 0
	var diff = 0;

	while (element.offsetParent && element.id!=stopElement) {

		diff = element["offsetLeft"];
		if (!isNaN(diff))
			x += diff;
		element = element.offsetParent;
	}
	x += element["offsetLeft"];

	return x
}

function elementPositionY(element, stopElement){
	var y = 0
	var diff = 0;

	while(element.offsetParent && element.id!=stopElement) {
		diff = element["offsetTop"];
		if (!isNaN(diff))
			y += diff;
		element = element.offsetParent;
	}
	y += element["offsetTop"];

	return y
}





/************************** key handler ***********************/

		GlobalKeyhandler = function() {};


		GlobalKeyhandler.stopEvent = function(e) {
		e = window.event || e;
		if (e.preventDefault) e.preventDefault();
		e.returnValue = false;
		e.cancelBubble = true;
		if (e.stopPropagation) e.stopPropagation();
		return false;
		};

		GlobalKeyhandler.addEvent = function(el, evname, func) {
			if (el.attachEvent) { // IE
				el.attachEvent("on" + evname, func);
			} else if (el.addEventListener) { // Gecko / W3C
				el.addEventListener(evname, func, true);
			} else {
				el["on" + evname] = func;
			}
		};

		GlobalKeyhandler.removeEvent = function(el, evname, func) {
			if (el.detachEvent) { // IE
				el.detachEvent("on" + evname, func);
			} else if (el.removeEventListener) { // Gecko / W3C
				el.removeEventListener(evname, func, true);
			} else {
				el["on" + evname] = null;
			}
		};


		GlobalKeyhandler._keyEvent = function(ev) {
			if(!ev) ev = window.event;
			var K = ev.keyCode;

			//alert(ev.type+"="+K+"\nControl="+ev.ctrlKey+"\nShift="+ev.shiftKey);
			switch (K) {
				case 9: // KEY tab
					if (GlobalKeyhandler.keyTab(ev.ctrlKey, ev.shiftKey))
						break;
					else
						return true;
				case 13: // KEY enter
					if (GlobalKeyhandler.keyEnter(ev.ctrlKey))
						break;
					else
						return true;
				case 27: // KEY Esc
					if (GlobalKeyhandler.keyEsc(ev.ctrlKey))
						break;
					else
						return true;
				case 37: // KEY left
					if (GlobalKeyhandler.keyLeft(ev.ctrlKey))
						break;
					else
						return true;
				case 39: // KEY right
					if (GlobalKeyhandler.keyRight(ev.ctrlKey))
						break;
					else
						return true;
				case 38: // KEY up
					if (GlobalKeyhandler.keyUp(ev.ctrlKey))
						break;
					else
						return true;
				case 40: // KEY down
					if (GlobalKeyhandler.keyDown(ev.ctrlKey))
						break;
					else
						return true;
				default:
					if (GlobalKeyhandler.defaultKeyEvent(ev.ctrlKey))
						break;
					else
						return true;
			}

			return GlobalKeyhandler.stopEvent(ev);
		};


function trim (str) {
	if(!str) return "";
	var	str = str.replace(/^\s\s*/, ''),
		ws = /\s/,
		i = str.length;
	while (ws.test(str.charAt(--i)));
	return str.slice(0, i + 1);
}


function setTextAreaMaxLength(field, feedbackField, maxlength) {

	if (field && !field.readOnly && !field.disabled) {
		field.setAttribute("maxlength", maxlength);
		field.onchange   = function() { textAreaLimiter(this, feedbackField, maxlength) };
		field.onblur     = function() { textAreaLimiter(this, feedbackField, maxlength) };
		field.onkeyup    = function() { textAreaLimiter(this, feedbackField, maxlength) };

		jQuery(field).keypress(function(event){
			var key = event.which;

			//all keys including return.
			if(key >= 33 || key == 13) {
				var maxLength = $(this).attr("maxlength");
				var length = this.value.length;
				if(length >= maxLength) {
					event.preventDefault();
				}
			}

			textAreaLimiter(this, feedbackField, maxlength);

		});

		textAreaLimiter(field, feedbackField, maxlength);
	} else if (field) {
		jQuery(feedbackField).hide();
	}
}


function textAreaLimiter(field, countfield, maxlimit) {

	if (maxlimit <= 0)
		return;

	var countfield = jQuery(countfield);

	if (field.value.length >= maxlimit) {
		countfield.removeClass("ui-state-highlight");
		countfield.addClass("ui-state-error");
	} else {
		countfield.addClass("ui-state-highlight");
		countfield.removeClass("ui-state-error");
	}

	if (field.value.length > maxlimit) {
		field.value = field.value.substring(0, maxlimit);

		//If there is a carriage return at the end, we may need to remove 2 characters
		if (field.value.length > maxlimit)
			field.value = field.value.substring(0, maxlimit-1);
	}

	if (countfield)
		countfield.text("Chars Left: "+(maxlimit - field.value.length));

}

/***************Nice file uplaod******/

if (!window.SI) { var SI = {}; };
SI.Files =
{

	fini : false,
	able : false,
	init : function()
	{
		this.fini = true;

		var ie = 0 //@cc_on + @_jscript_version
		if (window.opera || (ie && ie < 5.5) || !document.getElementsByTagName) { return; } // no support for opacity or the DOM
		this.able = true;

	},

	stylize : function(elem)
	{
		if (!this.fini) { this.init(); };
		if (!this.able) { return; };

		elem.parentNode.file = elem;
		elem.parentNode.onmousemove = function(e)
		{
			if (typeof e == 'undefined') e = window.event;
			if (typeof e.pageY == 'undefined' &&  typeof e.clientX == 'number' && document.documentElement)
			{
				e.pageX = e.clientX + document.documentElement.scrollLeft;
				e.pageY = e.clientY + document.documentElement.scrollTop;
			};

			var ox = oy = 0;
			var elem = this;
			if (elem.offsetParent)
			{
				ox = elem.offsetLeft;
				oy = elem.offsetTop;
				while (elem = elem.offsetParent)
				{
					ox += elem.offsetLeft;
					oy += elem.offsetTop;
				};
			};

			var x = e.pageX - ox;
			var y = e.pageY - oy;
			var w = this.file.offsetWidth;
			var h = this.file.offsetHeight;

			this.file.style.top		= y - (h / 2)  + 'px';
			this.file.style.left	= x - (w - 30) + 'px';

		    if (x < 0 || y < 0 || x > this.offsetWidth || y > this.offsetHeight) {
		        x = 0; y = 0; h = 0; w = 30;
		    }

		};
	},

	stylizeById : function(id)
	{
		var element = document.getElementById(id);
		if(element) this.stylize(element);
		return;
	}
};


var globalMessageObject = null;

function showPassiveMessage(message, time) {
	showMessage(message, null, time, true);
}

function hidePassiveMessage(time) {
	if (typeof(time) == "number")
		setTimeout("hidePassiveMessage()", time)
	else if (globalMessageObject)
		globalMessageObject.dialog("close");
}

function showMessage(message, returnFocusTo, time, is_passive) {

	var dhtmlMessageBox = document.getElementById("passive_message");
	if (!dhtmlMessageBox || typeof(jQuery) == "undefined") {
		alert(message);
		return;
	}

	if (message) {
		message = jQuery.trim(message);
		message = message.replace(/\n/g, "<br>");
		message = message.replace(/\t/g, "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;");
	} else {
		message = "";
	}

	jQuery("#passive_message").html(message);

	if (globalMessageObject == null) {
		//jQuery.ui.dialog.defaults.bgiframe = true;
		globalMessageObject = jQuery("#passive_message_container").show();
		globalMessageObject.dialog({ 
			autoOpen: false, 
			//bgiframe: true, 
			open: function() {
				jQuery(this).parents('.ui-dialog-buttonpane button:eq(0)').focus();
			} 
		});
	}

	var dialogWidth = 400;
	var dialogHeight = 150;

	if (is_passive) {
		dialogWidth = 180;
		globalMessageObject.dialog('option', 'buttons', null);
		globalMessageObject.removeClass('dialog_left_align');
	} else {
		globalMessageObject.dialog('option', 'buttons', { "Ok": function() { globalMessageObject.dialog("close"); if (returnFocusTo) try { returnFocusTo.focus();} catch (e) {} } });
		globalMessageObject.addClass('dialog_left_align');
	}

	var containerElement = jQuery("#wrapper");
	var windowElement = jQuery(window);
	var windowWidth = windowElement.width();
	var windowHeight = windowElement.height();
	var containerHeight = containerElement.height();
	var positionX = windowWidth / 2 - dialogWidth/2;
	var positionY = windowHeight / 2 - dialogHeight/2;

 	if (containerHeight < windowHeight)
		positionY = containerHeight / 2 - dialogHeight/2;

	//globalMessageObject.dialog('option', 'title',  '');
	globalMessageObject.dialog('option', 'width',  dialogWidth);
	globalMessageObject.dialog('option', 'height', 'auto');
	globalMessageObject.dialog('option', 'minHeight', 110);
	globalMessageObject.dialog('option', 'position', [positionX, positionY]);
	globalMessageObject.dialog('option', 'modal',  true);

	globalMessageObject.dialog('open');

	if (typeof(time) == "number")
		setTimeout("hidePassiveMessage()", time);

}






var globalReportIssueObject = null;

function closeReportIssue() {
	globalReportIssueObject.dialog("close");
}

function reportIssue(){

	var desc = document.getElementById("reportIssueDescription");
	desc.value = "";
	hideElement('reportIssueErrorMsg');

	var dhtmlMessageBox = document.getElementById("reportIssueDiv");
	if (!dhtmlMessageBox || typeof(jQuery) == "undefined") {
		alert("An Error Occured");
		return false;
	}


	if (globalReportIssueObject == null) {
		jQuery.ui.dialog.defaults.bgiframe = true;
		globalReportIssueObject = jQuery("#reportIssueDiv");
		globalReportIssueObject.dialog({ autoOpen: false, bgiframe: true, open: function() {jQuery(this).parents('.ui-dialog-buttonpane button:eq(0)').focus();} });
	}

	var dialogWidth = 400;
	var dialogHeight = 150;

	globalReportIssueObject.dialog('option', 'buttons', { "Save": function() { return doReportIssueSave(); }});
	globalReportIssueObject.addClass('dialog_left_align');

	var containerElement = jQuery("#container");
	var windowElement = jQuery(window);
	var windowWidth = windowElement.width();
	var windowHeight = windowElement.height();
	var containerHeight = containerElement.height();
	var positionX = windowWidth / 2 - dialogWidth/2;
	var positionY = windowHeight / 2 - dialogHeight/2;

 	if (containerHeight < windowHeight)
		positionY = containerHeight / 2 - dialogHeight/2;

	globalReportIssueObject.dialog('option', 'title',  'Report Issue');
	globalReportIssueObject.dialog('option', 'width',  dialogWidth);
	globalReportIssueObject.dialog('option', 'height', 'auto');
	globalReportIssueObject.dialog('option', 'minHeight', 200);
	globalReportIssueObject.dialog('option', 'position', [positionX, positionY]);
	globalReportIssueObject.dialog('option', 'modal',  true);

	globalReportIssueObject.dialog("open");

	document.getElementById('reportIssueDescription').focus();
	return false;

}




function showRegisteredMessage(message){
	showMessage(message);
	globalMessageObject.dialog('option', 'title',  'Registered Message');
}


function validateDateFormat(id){
		var element = document.getElementById(id);
		if(!element) return false;
		errors = "";
		noalert = true;
		var input = element.value;
		var name;
		if(id=="fromDate"){
			name = "From Date";
		}else if(id=="toDate"){
			name = "to Date";
		}else name="Date Field";

		chkDate(input, name);
		if(errors.length > 1) showPassiveMessage(errors);
		noalert = false;
		return false;
}


