
// Check browser version
var isNav4 = false, isNav5 = false, isIE4 = false
var strSeperator = "/";
// If you are using any Java validation on the back side you will want to use the / because
// Java date validations do not recognize the dash as a valid date separator.
var vDateType = 3; // Global value for type of date format
//                1 = mm/dd/yyyy
//                2 = yyyy/dd/mm  (Unable to do date check at this time)
//                3 = dd/mm/yyyy
var vYearType = 4; //Set to 2 or 4 for number of digits in the year for Netscape
var vYearLength = 2; // Set to 4 if you want to force the user to enter 4 digits for the year before validating.
var err = 0; // Set the error code to a default of zero
if(navigator.appName == "Netscape") {
if (navigator.appVersion < "5") {
isNav4 = true;
isNav5 = false;
}
else
if (navigator.appVersion > "4") {
isNav4 = false;
isNav5 = true;
   }
}
else {
isIE4 = true;
}

/* Use the following function to validate the date field */
/** Usage : <input type="text" name="txtDate" size="12" value="dd/mm/yyyy" onFocus="javascript:vDateType='3'" onKeyUp="DateFormat(this,this.value,event,false,'3')" onBlur="DateFormat(this,this.value,event,true,'3')"> **/
function DateFormat(vDateName, vDateValue, e, dateCheck, dateType) {
vDateType = dateType;
// vDateName = object name
// vDateValue = value in the field being checked
// e = event
// dateCheck
// True  = Verify that the vDateValue is a valid date
// False = Format values being entered into vDateValue only
// vDateType
// 1 = mm/dd/yyyy
// 2 = yyyy/mm/dd
// 3 = dd/mm/yyyy
//Enter a tilde sign for the first number and you can check the variable information.
if (vDateValue == "~") {
alert("AppVersion = "+navigator.appVersion+" \nNav. 4 Version = "+isNav4+" \nNav. 5 Version = "+isNav5+" \nIE Version = "+isIE4+" \nYear Type = "+vYearType+" \nDate Type = "+vDateType+" \nSeparator = "+strSeperator);
vDateName.value = "";
vDateName.focus();
return true;
}
var whichCode = (window.Event) ? e.which : e.keyCode;
// Check to see if a seperator is already present.
// bypass the date if a seperator is present and the length greater than 8
if (vDateValue.length > 8 && isNav4) {
if ((vDateValue.indexOf("-") >= 1) || (vDateValue.indexOf("/") >= 1))
return true;
}
//Eliminate all the ASCII codes that are not valid
var alphaCheck = " abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/-";
if (alphaCheck.indexOf(vDateValue) >= 1) {
if (isNav4) {
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
}
else {
vDateName.value = vDateName.value.substr(0, (vDateValue.length-1));
return false;
   }
}
if (whichCode == 8) //Ignore the Netscape value for backspace. IE has no value
return false;
else {
//Create numeric string values for 0123456789/
//The codes provided include both keyboard and keypad values
var strCheck = '47,48,49,50,51,52,53,54,55,56,57,58,59,95,96,97,98,99,100,101,102,103,104,105';
if (strCheck.indexOf(whichCode) != -1) {
if (isNav4) {
if (((vDateValue.length < 6 && dateCheck) || (vDateValue.length == 7 && dateCheck)) && (vDateValue.length >=1)) {
alert("Invalid Date\n\n Date must be in dd/mm/yyyy format");
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
}
if (vDateValue.length == 6 && dateCheck) {
var mDay = vDateName.value.substr(2,2);
var mMonth = vDateName.value.substr(0,2);
var mYear = vDateName.value.substr(4,4)
//Turn a two digit year into a 4 digit year
if (mYear.length == 2 && vYearType == 4) {
var mToday = new Date();
//If the year is greater than 30 years from now use 19, otherwise use 20
var checkYear = mToday.getFullYear() + 30;
var mCheckYear = '20' + mYear;
if (mCheckYear >= checkYear)
mYear = '19' + mYear;
else
mYear = '20' + mYear;
}
var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
if (!dateValid(vDateValueCheck)) {
alert("Invalid Date\n\n Date must be in dd/mm/yyyy format");
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
}
return true;
}
else {
// Reformat the date for validation and set date type to a 1
if (vDateValue.length >= 8  && dateCheck) {
if (vDateType == 1) // mmddyyyy
{
var mDay = vDateName.value.substr(2,2);
var mMonth = vDateName.value.substr(0,2);
var mYear = vDateName.value.substr(4,4)
vDateName.value = mMonth+strSeperator+mDay+strSeperator+mYear;
}
if (vDateType == 2) // yyyymmdd
{
var mYear = vDateName.value.substr(0,4)
var mMonth = vDateName.value.substr(4,2);
var mDay = vDateName.value.substr(6,2);
vDateName.value = mYear+strSeperator+mMonth+strSeperator+mDay;
}
if (vDateType == 3) // ddmmyyyy
{
var mMonth = vDateName.value.substr(2,2);
var mDay = vDateName.value.substr(0,2);
var mYear = vDateName.value.substr(4,4)
vDateName.value = mDay+strSeperator+mMonth+strSeperator+mYear;
}
//Create a temporary variable for storing the DateType and change
//the DateType to a 1 for validation.
var vDateTypeTemp = vDateType;
vDateType = 1;
var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
if (!dateValid(vDateValueCheck)) {
alert("Invalid Date\n\n Date must be in dd/mm/yyyy format");
vDateType = vDateTypeTemp;
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
}
vDateType = vDateTypeTemp;
return true;
}
else {
if (((vDateValue.length < 8 && dateCheck) || (vDateValue.length == 9 && dateCheck)) && (vDateValue.length >=1)) {
alert("Invalid Date\n\n Date must be in dd/mm/yyyy format");
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
         }
      }
   }
}
else {
// Non isNav Check
if (((vDateValue.length < 8 && dateCheck) || (vDateValue.length == 9 && dateCheck)) && (vDateValue.length >=1)) {
alert("Invalid Date\n\n Date must be in dd/mm/yyyy format");
vDateName.value = "";
vDateName.focus();
return true;
}
// Reformat date to format that can be validated. mm/dd/yyyy
if (vDateValue.length >= 8 && dateCheck) {
// Additional date formats can be entered here and parsed out to
// a valid date format that the validation routine will recognize.
if (vDateType == 1) // mm/dd/yyyy
{
var mMonth = vDateName.value.substr(0,2);
var mDay = vDateName.value.substr(3,2);
var mYear = vDateName.value.substr(6,4)
}
if (vDateType == 2) // yyyy/mm/dd
{
var mYear = vDateName.value.substr(0,4)
var mMonth = vDateName.value.substr(5,2);
var mDay = vDateName.value.substr(8,2);
}
if (vDateType == 3) // dd/mm/yyyy
{
var mDay = vDateName.value.substr(0,2);
var mMonth = vDateName.value.substr(3,2);
var mYear = vDateName.value.substr(6,4)
}
if (vYearLength == 4) {
if (mYear.length < 4) {
alert("Invalid Date\n\n Date must be in dd/mm/yyyy format");
vDateName.value = "";
vDateName.focus();
return true;
   }
}
// Create temp. variable for storing the current vDateType
var vDateTypeTemp = vDateType;
// Change vDateType to a 1 for standard date format for validation
// Type will be changed back when validation is completed.
vDateType = 1;
// Store reformatted date to new variable for validation.
var vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
if (mYear.length == 2 && vYearType == 4 && dateCheck) {
//Turn a two digit year into a 4 digit year
var mToday = new Date();
//If the year is greater than 30 years from now use 19, otherwise use 20
var checkYear = mToday.getFullYear() + 30; 
var mCheckYear = '20' + mYear;
if (mCheckYear >= checkYear)
mYear = '19' + mYear;
else
mYear = '20' + mYear;
vDateValueCheck = mMonth+strSeperator+mDay+strSeperator+mYear;
// Store the new value back to the field.  This function will
// not work with date type of 2 since the year is entered first.
if (vDateTypeTemp == 1) // mm/dd/yyyy
vDateName.value = mMonth+strSeperator+mDay+strSeperator+mYear;
if (vDateTypeTemp == 3) // dd/mm/yyyy
vDateName.value = mDay+strSeperator+mMonth+strSeperator+mYear;
} 
if (!dateValid(vDateValueCheck)) {
alert("Invalid Date\n\n Date must be in dd/mm/yyyy format");
vDateType = vDateTypeTemp;
vDateName.value = "";
vDateName.focus();
return true;
}
vDateType = vDateTypeTemp;
return true;
}
else {
if (vDateType == 1) {
if (vDateValue.length == 2) {
vDateName.value = vDateValue+strSeperator;
}
if (vDateValue.length == 5) {
vDateName.value = vDateValue+strSeperator;
   }
}
if (vDateType == 2) {
if (vDateValue.length == 4) {
vDateName.value = vDateValue+strSeperator;
}
if (vDateValue.length == 7) {
vDateName.value = vDateValue+strSeperator;
   }
} 
if (vDateType == 3) {
if (vDateValue.length == 2) {
vDateName.value = vDateValue+strSeperator;
}
if (vDateValue.length == 5) {
vDateName.value = vDateValue+strSeperator;
   }
}
return true;
   }
}
if (vDateValue.length == 10&& dateCheck) {
if (!dateValid(vDateName)) {
// Un-comment the next line of code for debugging the dateValid() function error messages
//alert(err);  
alert("Invalid Date\n\n Date must be in dd/mm/yyyy format");
vDateName.focus();
vDateName.select();
   }
}
return false;
}
else {
// If the value is not in the string return the string minus the last
// key entered.
if (isNav4) {
vDateName.value = "";
vDateName.focus();
vDateName.select();
return false;
}
else
{
vDateName.value = vDateName.value.substr(0, (vDateValue.length-1));
return false;
         }
      }
   }
}
function dateValid(objName) {
var strDate;
var strDateArray;
var strDay;
var strMonth;
var strYear;
var intday;
var intMonth;
var intYear;
var booFound = false;
var datefield = objName;
var strSeparatorArray = new Array("-"," ","/",".");
var intElementNr;
// var err = 0;
var strMonthArray = new Array(12);
strMonthArray[0] = "Jan";
strMonthArray[1] = "Feb";
strMonthArray[2] = "Mar";
strMonthArray[3] = "Apr";
strMonthArray[4] = "May";
strMonthArray[5] = "Jun";
strMonthArray[6] = "Jul";
strMonthArray[7] = "Aug";
strMonthArray[8] = "Sep";
strMonthArray[9] = "Oct";
strMonthArray[10] = "Nov";
strMonthArray[11] = "Dec";
//strDate = datefield.value;
strDate = objName;
if (strDate.length < 1) {
return true;
}
for (intElementNr = 0; intElementNr < strSeparatorArray.length; intElementNr++) {
if (strDate.indexOf(strSeparatorArray[intElementNr]) != -1) {
strDateArray = strDate.split(strSeparatorArray[intElementNr]);
if (strDateArray.length != 3) {
err = 1;
return false;
}
else {
strDay = strDateArray[0];
strMonth = strDateArray[1];
strYear = strDateArray[2];
}
booFound = true;
   }
}
if (booFound == false) {
if (strDate.length>5) {
strDay = strDate.substr(0, 2);
strMonth = strDate.substr(2, 2);
strYear = strDate.substr(4);
   }
}
//Adjustment for short years entered
if (strYear.length == 2) {
strYear = '20' + strYear;
}
strTemp = strDay;
strDay = strMonth;
strMonth = strTemp;
intday = parseInt(strDay, 10);
if (isNaN(intday)) {
err = 2;
return false;
}
intMonth = parseInt(strMonth, 10);
if (isNaN(intMonth)) {
for (i = 0;i<12;i++) {
if (strMonth.toUpperCase() == strMonthArray[i].toUpperCase()) {
intMonth = i+1;
strMonth = strMonthArray[i];
i = 12;
   }
}
if (isNaN(intMonth)) {
err = 3;
return false;
   }
}
intYear = parseInt(strYear, 10);
if (isNaN(intYear)) {
err = 4;
return false;
}
if (intMonth>12 || intMonth<1) {
err = 5;
return false;
}
if ((intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7 || intMonth == 8 || intMonth == 10 || intMonth == 12) && (intday > 31 || intday < 1)) {
err = 6;
return false;
}
if ((intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11) && (intday > 30 || intday < 1)) {
err = 7;
return false;
}
if (intMonth == 2) {
if (intday < 1) {
err = 8;
return false;
}
if (LeapYear(intYear) == true) {
if (intday > 29) {
err = 9;
return false;
   }
}
else {
if (intday > 28) {
err = 10;
return false;
      }
   }
}
return true;
}
function LeapYear(intYear) {
if (intYear % 100 == 0) {
if (intYear % 400 == 0) { return true; }
}
else {
if ((intYear % 4) == 0) { return true; }
}
return false;
}


// function to get the concatinated string value from list box.
function getStringFromList(list)
{
   var l = list.options.length;
   var str = "";
   if(l>0)
   {
	  for(var i=0;i<l;i++)
	  {
		if(list.options[i].selected)
		{
			if(str!="")str+=":";
			str+=list.options[i].value;
		}
      }
   }

   return str;
}


// Function to set the value of a dropdown list
function setSelectedValue(list,val)
{
   var l = list.options.length;

   if(l>0)
   {
	  for(var i=0;i<l;i++)
	  {
		if(list.options[i].value==val)
		{
			list.options[i].selected=true;
		}
      }
   }

}

// Function to check the value of radio buttons
function getCheckedRadio(rdo)
{
  var val = "";
  if(rdo!=null){
	  if(rdo.checked)
	  {
		return rdo.value;
	  }
	  else
	  {
			for(var i=0; i<rdo.length;i++)
			{
			 if(rdo[i].checked==true)
				 val = rdo[i].value;
			}

	  }	  
  }
  return val;
  
}

// Function to check the value of radio buttons
function setCheckedRadio(rdo,val)
{
   if(rdo!=null){
	  if(rdo.value == val)
	  {
		rdo.chcked = true;
	  }
	  else
	  {
			for(var i=0; i<rdo.length;i++)
			{
			 if(rdo[i].value == val)
				 rdo[i].checked = true;
			}

	  }	  
  }
  
}

// Sets all the radio buttons to no value in a group
function uncheckRadioButtons(rdo)
{
  var val = "";
  if(rdo!=null){
	  if(rdo.checked)
	  {
		 rdo.checked=false;
	  }
	  else
	  {
			for(var i=0; i<rdo.length;i++)
			{
			 rdo[i].checked=false;
			}

	  }	  
  }
  return val;
  
}

// Disables all the radio buttons in a group
function disableRadioButtons(rdo)
{
  var val = "";
  if(rdo!=null){
	  if(rdo.checked)
	  {
		rdo.disabled=true;
	  }
	  else
	  {
			for(var i=0; i<rdo.length;i++)
			{
			 rdo[i].disabled=true;
			}

	  }	  
  }
  return val;
  
}

// Enables all the radio buttons in a group
function enableRadioButtons(rdo)
{
  var val = "";
  if(rdo!=null){
	  if(rdo.checked)
	  {
		rdo.disabled=false;
	  }
	  else
	  {
			for(var i=0; i<rdo.length;i++)
			{
			 rdo[i].disabled=false;
			}

	  }	  
  }
  return val;
  
}

// function to the selected value from a drop down list
function getSelectedValue(selct)
{
  var val = "";
  val = selct.options[selct.selectedIndex].value;
  return val;
}
// function to the selected value from a drop down list
function getSelectedText(selct)
{
  var val = "";
  val = selct.options[selct.selectedIndex].text;
  return val;
}
// functin to check the valid number entry
// usage : copy this in input tag > onkeypress="return NumOnly();"
// <input type="text" name="avlQty" size="4" class="textbox" onkeypress="return NumOnly();" value="">
function NumOnly()
{
	if (!(event.keyCode >47 && event.keyCode < 58 ))     
		return false;
}

//function to check the valid entry of real number
// <input type="text" name="avlQty" size="4" class="textbox" onkeypress="return decOnly();" value="">
function decOnly()
{
	if (!(event.keyCode >45 && event.keyCode < 58 ))
	{
  	  return false;
	}else if(event.keyCode==47)
		return false;
}

function setListValues(list,val)
{

	if(list!=null && list.options!=null && val!="")
	{
		var values = val.split(",");
		for(var j=0;j<values.length;j++)
		{
			for(var i=0;i<list.options.length;i++)
			{
				if(list.options[i].value==values[j])
				{
					list.options[i].selected=true;
					break;
				}
			}
		}
	}

}

function getSelectedValues(list)
{
	var values = "";
	if(list!=null && list.options!=null)
	{
		for(var i=0;i<list.options.length;i++)
		{
			if(list.options[i].selected)
			{
				if(values!="")
						values+=",";
				values+=list.options[i].value;	
			}
		}
	}
	return values;
}

function validate_mandatory_field(field_name,msg)
{
	var value = true;	
	var el = document.getElementById(field_name);
	var type = el.type;
	switch(type){
		case "select-one":
			if(!getSelectedValue(el)!="")
			{
				value = false;
				alert(msg);
				el.focus();
			}
		break;
		case "text":
			if(el.value == "")
			{
				alert(msg);
				value = false;
				el.focus();
				
			}
	
	}

	return value;
}

 function makeRequest(url) {

	var http_request = false;

	if (window.XMLHttpRequest) { // Mozilla, Safari,...
			http_request = new XMLHttpRequest();
			if (http_request.overrideMimeType) {
					http_request.overrideMimeType('text/xml');
					// See note below about this line
			}
	} else if (window.ActiveXObject) { // IE
		try {
			http_request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				http_request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {}
		}
	}

	return(http_request);

}// end of makeRequest

function makePOSTRequest(url, parameters,callbk) {
  http_request = false;
  http_request = makeRequest(url);
  if (!http_request) {
	 alert('Cannot create XMLHTTP instance');
	 return false;
  }

  http_request.onreadystatechange = function(){
	  
	  	if (http_request.readyState == 4) {
			if (http_request.status == 200) {
				//alert(http_request.readyState+" "+http_request.status+" "+callbk);
				//rtg_update_view_img();
				eval(callbk);
			}
		}
	};
  http_request.open('POST', url, true);
  http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  http_request.setRequestHeader("Content-length", parameters.length);
  http_request.setRequestHeader("Connection", "close");
  http_request.send(parameters);
}// end of makePOSTRequest


function get_scroll_pos_y()
{
	var y = 0;
	if (document.all) {
		y = document.body.scrollTop;
	}
	else if (document.layers) {
		y = window.pageYOffset;
	}
	else if (document.getElementById) {
		y = window.pageYOffset;
	}	

	return(y);
}
function get_scroll_pos_x()
{
	var x = 0;
	if (document.all) {
		x = document.body.scrollLeft;
	}
	else if (document.layers) {
		x = window.pageXOffset;
	}
	else if (document.getElementById) {
		x = window.pageXOffset;
	}	

	return(x);
}
function get_screen_width()
{
  var w = 1000;

	if (document.all) {
		w = document.body.clientWidth;
	}
	else if (document.layers) {
		w = window.innerWidth;
	}
	else if (document.getElementById) {
		w = window.innerWidth;
	}	

	return(w);
}
// functions for popup divs 
function show_div_pop(wid,ht)
{	
	var top = 120;
	var left = 282;
	var sw = get_screen_width();
	if(parseInt(sw) != NaN && parseInt(sw) > 0)
	{
		left = ((sw - 660)/2) + 30;
	}
	//document.getElementById("popup_otr_div").style.display='block';
	document.getElementById("popup_box_div").style.display='block';
	document.getElementById("popup_scrol_div").style.display='block';
	if(wid !="" && parseInt(wid) > 0 && ht !=null && ht !="" && parseInt(ht) > 0)
	{
		set_pop_size(wid,ht);
	}else{
		set_pop_size(660,400);
	}
	if(navigator.appName == "Microsoft Internet Explorer")
	{
		//popup_fix("popup_box_div",278,126);
		//repos_div_to_scrol('popup_otr_div',left,top+6);
		repos_div_to_scrol('popup_box_div',left+8,top+12);
	}else{
		//repos_div_to_scrol('popup_otr_div',left-21,top);
		repos_div_to_scrol('popup_box_div',left-11,top+10);
	}
}

function hide_div_pop()
{
	//document.getElementById("popup_otr_div").style.display='none';
	document.getElementById("popup_box_div").style.display='none';
	document.getElementById("popup_scrol_div").innerHTML='';
	set_popup_heading('');
	document.getElementById("popup_scrol_div").style.display='none';
}

function popup_fix(id,left,top)
{
  var the_style = getStyleObject(id);
  var the_left = left;
  var the_top = top;

  if (document.layers)
  {
    the_style.left = the_left;
    the_style.top = the_top;

  }
  else 
  {
    the_style.left = the_left + "px";
    the_style.top = the_top + "px";  

  }
}

  function getStyleObject(objectId) {
    // cross-browser function to get an object's style object given its
    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
var popup_otr_div_ht = 412;
var popup_box_div_ht = 360;
function set_pop_height(adldiv,adlht)
{
	var el = document.getElementById(adldiv);
	var trs = document.getElementById("popup_otr_div");
	var bx = document.getElementById("popup_box_div");
	//var otr_newht = popup_otr_div_ht+adlht;
	var box_newht = popup_box_div_ht+adlht;
	if(el.style.display == 'none' || el.style.display == '')
	{
		el.style.display = 'block';
		//trs.style.height = otr_newht+'px';
		bx.style.height = box_newht+'px';
	}else{
		el.style.display = 'none';
		//trs.style.height = popup_otr_div_ht+'px';
		bx.style.height = popup_box_div_ht+'px';
	}

}
function set_pop_size(w,h)
{

	var trs = getStyleObject("popup_otr_div");
	var bx = getStyleObject("popup_box_div");
	var sc = getStyleObject("popup_scrol_div");
	var otr_newht = h+12;//popup_otr_div_ht+adlht;
	var box_newht = h;//popup_box_div_ht+adlht;
	var sc_newht = h-70;//popup_box_div_ht+adlht;
	var otr_w = w+12;
	var box_w = w;
	if(navigator.appName == "Microsoft Internet Explorer")
	{
		box_w -=4;
	}
	var sc_w = w-30;

	if (document.layers){
		trs.height = otr_newht;
		bx.height = box_newht;
		sc.height = sc_newht;
		trs.width = otr_w;
		bx.width = box_w;
	//	sc.width = sc_w;
	}else{
		trs.height = otr_newht+'px';
		bx.height = box_newht+'px';
		sc.height = sc_newht+'px';
		trs.width = otr_w+'px';
		bx.width = box_w+'px';
	//	sc.width = sc_w+'px';
	}


}

function repos_div_to_scrol(id,x1,y1)
{
	var x = get_scroll_pos_x();
	var y = get_scroll_pos_y();
	var style = getStyleObject(id)
	if (document.layers) {
		style.position = 'absolute';
		style.top = y+y1;
		style.left = x+x1;
	}
	else{
	style.position = 'absolute';
		style.top = (y+y1) + 'px';
		style.left = (x+x1) + 'px';
   }
}

function set_popup_content(content)
{
	var el = document.getElementById("popup_box_div");
	el.innerHTML = content;
	document.getElementById("popup_scrol_div").style.display='block';
}

function set_popup_heading(heading)
{
	var el = document.getElementById("pophead");
	el.innerHTML = heading;
}

function load_div_pop(url)
{
	var http_request = null;
	http_request = makeRequest(url);
	if (!http_request) {
			alert('Giving up :( Cannot create an XMLHTTP instance');
			return false;
	}
	//alert(url);
	http_request.onreadystatechange = function() { update_div_pop(http_request); };
	http_request.open('GET', url, true);
	http_request.send(null);
}
function update_div_pop(http_request) {

	if (http_request.readyState == 4) {

		if (http_request.status == 200) {

			//to retrieve data from xml
			var xmldoc = http_request.responseText;
			//var root_node = xmldoc.getElementsByTagName("ProductId").item(0);
			//var result = root_node.firstChild.data;
			set_popup_content(xmldoc);
		} else {
				alert('There was a problem with the request.');
		}
	}

}
// end of popup div functions

function is_valid_email(email){
	var valid = false;
	var filter=/^(\w+(?:\.\w+)*)@((?:\w+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	if (filter.test(email.trim())){
		valid = true;
	}
	return(valid);
}
function is_valid_multi_emails(emails)
{ 
	var valid = false;
	if(emails!=null && emails != "" && emails.trim().length > 0)
	{
		var list = emails.split(",");
		for(var i=0; i< list.length; i++)
		{
			if(is_valid_email(list[i]))
			{
				valid = true;
			}else{
				valid = false;
				return(valid);
			}
		}// end for

	}// end if empty

	return(valid);
}// end of function

String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}

function has_value(field)
{
	var rs = false;
	if(field.value != "" && field.value.trim().length > 0)
	{
		rs = true;
	}
	return(rs);
}

function fix_field_csv(field)
{
	var value = field.value;
	var csv = ""
	if(value!=null && value != "" && value.trim().length > 0)
	{
		var list = value.split(",");
		for(var i=0; i< list.length; i++)
		{
			if(csv!="")csv+=",";
			csv+=list[i].trim();
		}	
	}
	field.value = csv;
}

function show_div_layer(div_id)
{
	var el = document.getElementById(div_id);
	if(el != null && el != undefined)
	{
		el.style.display = "block";
	}

}

function hide_div_layer(div_id)
{
	var el = document.getElementById(div_id);
	if(el != null && el != undefined)
	{
		el.style.display = "none";
	}

}


function checkNumeric($char,$mozChar) {
	$RetVal = false;


	if($mozChar != null) { // Look for a Mozilla-compatible browser
		if(($mozChar >= 48 && $mozChar <= 57) || $mozChar == 0 || $char ==
		8 || $mozChar == 13) $RetVal = true;
		else {
			$RetVal = false;
			//alert('Please enter a numeric value.');
		}
	}else { // Must be an IE-compatible Browser
	//alert($char);
		if(($char >= 48 && $char <= 57) || $char == 13){
			$RetVal = true;

		}else {
			$RetVal = false;
			event.keyCode = 0;
			//alert('Please enter a numeric value.');
		}
	}

	return $RetVal;
}

function checkNumericPacth($char, $mozChar)
{
	if(!checkNumericOrg($char, $mozChar))
	{
		if($mozChar != null)
		{
		}else{event.keyCode = 0;}
	//	alert("Enter Numeric Value");
	}
}

function checkDecimal($char, $mozChar) {
	$RetVal = false;
	if($mozChar != null) { // Look for a Mozilla-compatible browser
		//alert($mozChar);
		if(($mozChar >= 48 && $mozChar <= 57) || $mozChar == 0 || $char ==
		8 || $mozChar == 13 || $mozChar == 46) $RetVal = true;
		else {
			$RetVal = false;
			//alert('Please enter a numeric value.');
		}
	}else { // Must be an IE-compatible Browser
		//alert($char);
		if(($char >= 48 && $char <= 57) || $char == 13 || $char == 46) $RetVal = true;
		else {
			$RetVal = false;
			event.keyCode = 0;
			//alert('Please enter a numeric value.');
		}
	}
	return $RetVal;
}

function validateNumeric(obj,flag)
{
 if(!flag)	
  obj.value = "";

}

function mouseX(evt) {
	if (evt.pageX) return evt.pageX;
	else if (evt.clientX)
	   return evt.clientX + (document.documentElement.scrollLeft ?
	   document.documentElement.scrollLeft :
	   document.body.scrollLeft);
	else return null;
}
function mouseY(evt) {
	if (evt.pageY) return evt.pageY;
	else if (evt.clientY)
	   return evt.clientY + (document.documentElement.scrollTop ?
	   document.documentElement.scrollTop :
	   document.body.scrollTop);
	else return null;
}

var curX = 0;
var curY = 0;
function set_curs_pos(evt)
{
	curX = mouseX(evt);
	curY = mouseY(evt);
	//alert(curX+"-"+curY);
}
function repos_div_to_curs(id,x1,y1)
{

	var style = getStyleObject(id)
	if (document.layers) {
		style.position = 'absolute';
		style.top = y1;
		style.left = x1;
	}
	else{
	style.position = 'absolute';
		style.top = y1 + 'px';
		style.left = x1 + 'px';
   }
}
