function submitForm(form) {
	updateRowsCols(form, self);				// page navigation updates rows&cols
	form.submit();
}

function gotoFunction(sel) {
//	if (sel.options[sel.selectedIndex].value!='') {
		updateRowsCols(sel.form, self);		// combo boxes update rows&cols
		submitForm(sel.form);
//	}
}

function changeOffset(new_offset) {
	form = document.forms.OffsetForm;		// make sure there's OffsetForm in your HTML code
	if (form == null)
		return;
	form.offset.value = new_offset;
	submitForm(form);
}
/*
function setFavOrAllAndSubmit(value) {
	form = document.forms.OffsetForm;		// make sure there's OffsetForm in your HTML code
	if (form == null)
		return;

	if (form.favorall)
		form.favorall.value = value;

	submitForm(form);
}
*/
function compareCheckedItems(url) {
	return CheckNofSelectedAndSubmitWithUrl(2, url);
}

function getParameterValueFromURL(url, varname)
{
	var qparts = url.split("?");

	// Check that there is a querystring, return null if not
	if (qparts.length == 0) {
		return null;
	}

	// Then find the querystring, everything after the ?
	var query = qparts[1];

	// Split the query string into variables (separates by &s)
	var vars = query.split("&");

	// Iterate through vars, checking each one for varname
	for (i=0; i<vars.length; i++) {
		// Split the variable by =, which splits name and value
		var parts = vars[i].split("=");

		// Check if the correct variable
		if (parts[0] == varname) {
			// Load value into variable
			var value = parts[1];

			// Convert escape code
			value = unescape(value);

			// Convert "+"s to " "s
			value.replace(/\+/g," ");

			// Return the value
			return value;
		}
	}

	return null;
}

function submitWithUrl(url)
{
    submitWithUrl(url,"");
}
function submitWithUrl(url,target) {
	form = document.forms.OffsetForm;		// make sure there's OffsetForm in your HTML code	
	if (form == null)
		return;
	form.action = url;   // change submit URL	
	form.target = target;	
	
	// if there is an event in the URL and the form METHOD is GET (not POST) then the URL parameters are lost (mainly the EVENT)
	// in order to fix it we need to copy the parameters to form variables (at least the key parameter "event")
	if (form.method != null && form.method.toUpperCase() == "GET") {
		var value = getParameterValueFromURL(url, "event");
		if (value != null) {
			form.event.value = value;
		}
	}
	submitForm(form);
}

function submitWithSearchMode(value) {
	form = document.forms.OffsetForm;		// make sure there's OffsetForm in your HTML code
	if (form == null)
		return;

	if (form.searchMode)
		form.searchMode.value = value;

	submitForm(form);
}

function checkNoItems(number) {
	form = document.forms.OffsetForm;		// make sure there's OffsetForm in your HTML code
	if (form == null)
		return false;

	var warn = "Select at least ";
	if (number == 1)
		warn += "one item";
	else if (number == 2)
		warn += "two items";
	else
		warn += number + " items";
	if (getSelectedItemsCount(form.iid) < number) {
		alert(warn);
		return false;
	}
	return true;
}

function CheckNofSelectedAndSubmitWithUrl(number, url) {
	if (checkNoItems(number)) {
		submitWithUrl(url, "_self");
		return true;
	}
	return false;
}

function submitWithEvent(eventName) {
	form = document.forms.OffsetForm;		// make sure there's OffsetForm in your HTML code
	if (form == null)
		return;

	updateRowsCols(form, self);				// page navigation updates rows&cols
	form.action = form.action + "&event=" + eventName;
	form.submit();
}

function addCheckedToFavorites() {
	return addCheckedWithEvent("addFavorites");
}

function removeCheckedFromFavorites() {
	return addCheckedWithEvent("removeFavorites");
}

function addCheckedWithEvent(eventName) {
	return addCheckedWithEventForItem(eventName, "iid");
}

function addCheckedWithEventForItem(eventName, itemName) {
	form = document.forms.OffsetForm;		// make sure there's OffsetForm in your HTML code
	if (form == null)
		return false;

	if (getSelectedItemsCount(form.elements[itemName]) < 1) {
		alert("Select at least one item");
		return false;
	}

	submitWithEvent(eventName);
	return true;
}

function removeCheckedItems() {
	form = document.forms.OffsetForm;		// make sure there's OffsetForm in your HTML code
	if (form == null)
		return;

	var selected = getSelectedItemsCount(form.iid);

	if (selected < 1) {
		alert("Select at least one item");
		return false;
	}

	if (form.iid.length == selected) {
		alert("You cannot remove all items, please uncheck at least one item");
		return false;
	}

	// use a trick - submit checked only those items that you want to keep preserved
	// i.e. - invert the selection and the user selected items get forgotten
	invertSelection(form.iid);

	form.submit();

	// invert it back to original state so user doesn't get confused
	invertSelection(form.iid);

	return true;
}

// switches display style between 'block' and 'none'
// return false if element doesn't exist, true otherwise
function displayElement(elementID, itemNo, show) {
	var element = document.getElementById(elementID+itemNo);
	if (element) {
		if (element.style) {
			element.style.display = show ? "block" : "none";
		}
		return true;
	}
	return false;
}

// suitable for item_info_mouseovertitle.ssi
function displayItemInfo(item, show) {
	displayElement("itemInfo", item, show);
	displayElement("defaultItemInfoAreaText","",!show);
}

function displayItemInfoForever(item) {
	var i = 0;
	while(displayElement("itemInfo", i, i == item)) {
		i++;
	}
}

function changeBYOsubselect(sele) {
	// hide all BYO selects
//!! How to find the number of all BYO selects? Is it same as sele.length? Probably yes, otherwise indexing would not work
	for(i=0; i<5; i++) // FIXME! 5 should be replaced with something more dynamic
		displayElement("buildYourOwnSelect", i, false);

	// find selected manufacturer
	var item = sele.options[sele.selectedIndex].value;

	// display appropriate BYO SELECT
	displayElement("buildYourOwnSelect", item, true);
}

function isInternetExplorer()
{
	if (navigator.appName == "Microsoft Internet Explorer")
		return 1;
	else
		return 0;
}

function getIEVersionNumber() {
    var ua = navigator.userAgent;
    var MSIEOffset = ua.indexOf("MSIE ");
    
    if (MSIEOffset == -1) {
        return 0;
    } else {
        return parseFloat(ua.substring(MSIEOffset + 5, ua.indexOf(";", MSIEOffset)));
    }
}

function getWindowWidth(win)
{
    if (typeof(win.innerWidth) == 'number')  // non-IE
        return win.innerWidth;
    else if (win.document.documentElement && win.document.documentElement.clientWidth) // IE 6+ in standards compliant mode
        return win.document.documentElement.clientWidth;
    else if (win.document.body && win.document.body.clientWidth) // IE 4 compatible
        return win.document.body.clientWidth;
    else
        return 0;
}

function getWindowHeight(win)
{
    if (typeof(win.innerHeight) == 'number')  // non-IE
        return win.innerHeight;
    else if (win.document.documentElement && win.document.documentElement.clientHeight) // IE 6+ in standards compliant mode
        return win.document.documentElement.clientHeight;
    else if (win.document.body && win.document.body.clientHeight) // IE 4 compatible
        return win.document.body.clientHeight;
    else
        return 0;
}

function updateRowsCols(form, win) {    
    if(!CustomBrowserWindowSize(form))        
    {
	    if (form.cw)
		    form.cw.value = getWindowWidth(win);
	    if (form.ch)
		    form.ch.value = getWindowHeight(win);
    }
}

function CustomBrowserWindowSize(form)
{
    var lockbrowsersizeEle = document.getElementById('lockBrowserSize');
    if(lockbrowsersizeEle != null)
    {
        if(lockbrowsersizeEle.value == 1)
        {
            if(typeof(customBrowserWidth) !== 'undefined' && typeof(customBrowserHeight) !== 'undefined')
            {
                if(form.cw && form.ch)
                {
                    form.cw.value = customBrowserWidth;
                    form.ch.value = customBrowserHeight;
                    return true;
                }
            }
        }   
    }    
    return false;
}

function OpenPage(newwin,winname,pw,ph,bkg)
{
	var OURPARENTWINDOW = 'ePrevueNet';
	otevirac = self;
	if (otevirac.rodic != OURPARENTWINDOW) {
		// traverse through window list tree and find the top ePreVue window
		father = otevirac;
		while(father.opener != null) {
			father = father.opener;
			if (father.rodic == OURPARENTWINDOW) {
				otevirac = father;
				break;
			}
		}
	}

	// "8" and "32" are special Microshit offset constants tuned up on IE5.5/W98
	width = Math.min(pw, screen.availWidth-8);
	height = Math.min(ph, screen.availHeight-32);

	nw = otevirac.open(newwin,winname,"toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, left=screen.availLeft, top=screen.availTop, width="+width+", height="+height)

	if (bkg == true)
		nw.blur();
	else
		nw.focus();
}

function OpenImageWindow(newin)
{
	nw = window.open(newin,"","width=screen.availWidth, height=screen.availHeight, toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes")
	nw.focus();
}

function getSelectedItemsCount(formitem) {
	if (! formitem)
		return -1;

	var selected = 0;
	if (formitem.length) {
		for(i=0;i<formitem.length;i++) {
			if (formitem[i].checked)
				selected++;
		}
	}
	else {
		if (formitem.checked)
			selected++;
	}
	return selected;
}
function getSelectedItemIds()
 {
    var formitem = document.forms.OffsetForm.iid;		// make sure there's OffsetForm in your HTML code
	if (formitem == null)
		return null;		
	if (! formitem)
		return -1;
		
	var selectedIDArray = new Array();
	if (formitem.length) {
		for(i=0;i<formitem.length;i++) {
			if (formitem[i].checked)
			{		
				selectedIDArray[i] = formitem[i].value;
			}
		}
	}
	else {
		if (formitem.checked)
		{			
			selectedIDArray[i] = formitem[i].value;
		}
	}
	return selectedIDArray;
}

function invertSelection(formitem) {
	if (formitem) {
		if (formitem.length) {
			for(i=0;i<formitem.length;i++) {
				formitem[i].checked = !formitem[i].checked;
			}
		}
	}
}

// special functions for Redirect.html page
function checkResolutionAndColorDepth(form)
{
	// get the screen resolution information for statistics purpose
	form.sw.value = screen.width;
	form.sh.value = screen.height;
	if (isInternetExplorer())
		form.sd.value = screen.colorDepth;
	else
		form.sd.value = screen.pixelDepth;
	form.cw.value = getWindowWidth(self);
	form.ch.value = getWindowHeight(self);

	if (form.sw.value < 800) {
		alert("ePreVue was designed for screen resolution 800x600. Your detected screen resolution is lower than that.\n"+
			  "Please switch to 800x600 or higher resolution otherwise you would have to scroll within the browser window a lot.\n");
	}
	else if (form.cw.value < 761 || form.ch.value < 400) {
		// resize window to fullscreen automatically
		self.moveTo(screen.availLeft, screen.availTop)
		self.resizeTo(screen.availWidth, screen.availHeight);
		form.cw.value = getWindowWidth(self);
		form.ch.value = getWindowHeight(self);
	}
}

function doChecksAndReload(form, loc)
{
	if (form == null) {
		alert("We have a problem with missing form");
		if (loc != null && loc.replace != null) {
			loc.replace("http://www.eprevue.net/");
		}
		return false;
	}

	if ( (is_ie && !is_ie5_5up) || (is_nav && !is_nav5up) || (is_opera && !is_opera7up) ) {
		loc.replace("http://www.eprevue.net/resources/unsupportedbrowser.html");
		return;
	}

	if (is_cookie != "true") {
		alert("Cookies are required for accessing ePreVue web service. Please enable them in your browser.");
		return;
	}

	checkResolutionAndColorDepth(form);
	var url = form.action;
	if (url.indexOf('?') < 0)
		url += "?";
	else
		url += "&";
	for(i=0;i<form.length;i++) {
		if (i > 0)
			url += "&";
		url += form[i].name + "=" + form[i].value;
	}

	if (loc == null || loc.replace == null) {
		alert("We have a problem with location");
		return false;
	}
	loc.replace(url);  // this is better than form.submit since the [Back] button works
	// form.submit();
}
///
function validateMailAddr(emailad) {
	var exclude=/[^@\-\.\w]|^[_@\.\-]|[\._\-]{2}|[@\.]{2}|(@)[^@]*\1/;
	var check=/@[\w\-]+\./;
	var checkend=/\.[a-zA-Z]{2,4}$/;
	var arrayOfAddresses = emailad.split(',');
	for(var i=0; i < arrayOfAddresses.length; i++) {
		if(((arrayOfAddresses[i].search(exclude) != -1)||(arrayOfAddresses[i].search(check)) == -1)||(arrayOfAddresses[i].search(checkend) == -1)) {
			return false;
		}
	}
	return true;
}
/*
Notes:
'exclude' checks 5 conditions:
a) characters that should not be in the address
b) characters that should not be at the start
c) & d) characters that shouldn't be together
e) there's not more than one '@'
'check' checks there's at least one '@', later followed by at least one '.'
'checkend' checks the address ends with a period followed by 2 or 3 alpha characters
N.B. Javascript 1.2 only works with version 4 browsers and higher.
*/

function validateEmailForm(frm) {
	if (frm.addrTo) {
		if (frm.addrTo.value == "") {
			if (frm.copy2U.checked == false) {       // require To: address only if Copy To Yourself is NOT set
				alert("Receiver's e-mail address is required");
				return false;
			}
		}
		else if (! validateMailAddr(frm.addrTo.value)) {
			alert("Receiver's e-mail address is not correct");
			return false;
		}
	}
	if (frm.addrFrom.value == "") {
		alert("Your e-mail address is required");
		return false;
	}
	else if (! validateMailAddr(frm.addrFrom.value)) {
		alert("Your e-mail address is not correct");
		return false;
	}
	// for request info
	if (frm.name) {
		if (frm.name.value == "") {
			alert("Your name is required");
			return false;
		}
	}
	if (frm.zip) {
		if (frm.zip.value == "") {
			alert("Your ZIP/Postal Code is required");
			return false;
		}
	}
	if (frm.phone && frm.contactmethod) {
		if (frm.phone.value == "" && frm.contactmethod.selectedIndex == 1) { // index 1 = Phone
			alert("Your phone number is required");
			return false;
		}
	}
	return true;
}

function validateLoginForm(frm) {
	if (frm.emailaddress.value == "") {
		alert("Your e-mail address is required");
		return false;
	}
	else if (! validateMailAddr(frm.emailaddress.value)) {
		alert("Your e-mail address is not correct");
		return false;
	}
	if (frm.password.value == "") {
		alert("Your password is required");
		return false;
	}
	return true;
}

function validateCreateAccountForm(frm) {
	if (frm.name.value == "") {
		alert("Your name is required");
		return false;
	}
	if (frm.zip.value == "") {
		alert("Your ZIP/Postal Code is required");
		return false;
	}
	if (frm.phone.value == "") {
		alert("Your phone number is required");
		return false;
	}
	if (frm.phone.value.length<10) {
		alert("The phone number has wrong length. Make sure you included an area code.");
		return false;
	}
	if (frm.emailaddress.value == "") {
		alert("Your e-mail address is required");
		return false;
	}
	else if (! validateMailAddr(frm.emailaddress.value)) {
		alert("Your e-mail address is not correct");
		return false;
	}
/*	BTS #5197 - password no longer required
	if (frm.password.value == "") {
		alert("Your password is required");
		return false;
	}
	if (frm.passwordagain.value == "") {
		alert("Your re-typed password is required");
		return false;
	}
*/
	if (frm.password.value != frm.passwordagain.value) {
		alert("Your password and re-typed password is not match");
		return false;
	}
	
	return true;
}

function validateModifyAccountForm(frm) {
	if (frm.oldpassword.value == "") {
		alert("Your old password is required");
		return false;
	}
	return validateCreateAccountForm(frm);
}

function validateLostPasswordForm(frm) {
	if (frm.emailaddress.value == "") {
		alert("Your e-mail address is required");
		return false;
	}
	else if (! validateMailAddr(frm.emailaddress.value)) {
		alert("Your e-mail address is not correct");
		return false;
	}
	return true;
}

// special hack for LockBrowser from QCL Solutions

// Test for LockBrowser variable
var lockBrowser=false;

// This function tests to see if the page is running in lockbrowser, due to the nature of html events this
// function can't be called from the same event as the print function because the variable lockBrowser will
// not be set till the event is completed. This function should be run from onload.
function testForLockBrowser() {
  window.status="LockBrowser:Test";
// Optional line to make the status bar look normal
// window.status="Done.";
}

// This function is required and is executed by LockBrowser on the 'Test' command
function setLockBrowser() {
  lockBrowser=true;
}

//This is an example of a print function
function printPage() {
  if (lockBrowser) {
	window.status="LockBrowser:Print";
  }
  else {
	window.print();
  }
}

// report
function getAddrAndSendEmail(clientID) {
	var addr=prompt("Enter the e-mail address:\n(for sending multiple e-mails, use a comma to separate addresses)", "");
	if (addr == null) {
		alert("E-mail was cancelled.");
		return false;
	}
	sendEmail(clientID, addr);
	return true;
}

function sendEmail(clientID, EmailAddr) {
	document.Formic.mailaddr.value = EmailAddr;
	document.Formic.client.value = clientID;
	document.Formic.submit();
	return true;
}

// calendar

/*
Autor: Jorge Ortiz Giraldo
e-mail: jortizg@hotmail.com
website: jortizg.tripod.com
Empresa: WebSys (Medelln - Colombia)
Version 1.0 : Fecha: 31/marzo/2000
Version 1.1 : Fecha: 16/junio/2000
Version 1.2 : PetrS: 20/april/2001 - fixed the number of day in April, changed the date format to MM/DD/YYYY
Mejoras introducidas en esta versin:
- Ahora funciona tambin en Internet Explorer (v5).
- Puede usarse este control varias veces en una misma pgina.
- Escribe automticamente las fechas elegidas, en los campos designados.
- Permite asignar un ttulo a la ventana de calendario.
- Resalta en rojo el da de la fecha actual.
- Presenta la fecha actual en un botn que permite elegirla inmediatamente.
Licenciamiento: La propiedad de este script corresponde unica y exclusivamente a su autor, quien concede
a otros usuarios la posibilidad de usarlo libremente si y solo si se conservan estas lineas
de autora.  Ni el autor ni su empresa ofrecen ninguna garanta sobre el funcionamiento de este
script ni se hacen responsables por fallas ocasionadas por su uso.
*/

nombresMes = Array("","January","February","March","April","May","June","July","August","September","October","November","December");

var anoInicial = 2000;	// first statistics collected in the year 2000
var anoFinal = anoHoy();// should be the current year
var ano;
var mes;
var dia;
var campoDeRetorno;
var titulo;

function diasDelMes(ano,mes) {
if ((mes==1)||(mes==3)||(mes==5)||(mes==7)||(mes==8)||(mes==10)||(mes==12)) dias=31
else if ((mes==4)||(mes==6)||(mes==9)||(mes==11)) dias=30
else if ((((ano % 100)==0) && ((ano % 400)==0)) || (((ano % 100)!=0) && ((ano % 4)==0))) dias = 29
else dias = 28;
return dias;
};

function crearSelectorMes(mesActual) {
var selectorMes = "";
selectorMes = "<select name='mes' size='1' onchange='javascript:opener.dibujarMes(self.document.Forma1.ano[self.document.Forma1.ano.selectedIndex].value,self.document.Forma1.mes[self.document.Forma1.mes.selectedIndex].value);'>\r\n";
for (var i=1; i<=12; i++) {
selectorMes = selectorMes + "  <option value='" + i + "'";
if (i == mesActual) selectorMes = selectorMes + " selected";
selectorMes = selectorMes + ">" + nombresMes[i] + "<"+"/option>\r\n";
}
selectorMes = selectorMes + "<"+"/select>\r\n";
return selectorMes;
}

function crearSelectorAno(anoActual) {
var selectorAno = "";
selectorAno = "<select name='ano' size='1' onChange='javascript:opener.dibujarMes(self.document.Forma1.ano[self.document.Forma1.ano.selectedIndex].value,self.document.Forma1.mes[self.document.Forma1.mes.selectedIndex].value);'>\r\n";
for (var i=anoInicial; i<=anoFinal; i++) {
selectorAno = selectorAno + "  <option value='" + i + "'";
if (i == anoActual) selectorAno = selectorAno + " selected";
selectorAno = selectorAno + ">" + i + "<"+"/option>\r\n";
}
selectorAno = selectorAno + "<"+"/select>";
return selectorAno;
}

function crearTablaDias(numeroAno,numeroMes) {
var tabla = "<table border='0' cellpadding='2' cellspacing='0' bgcolor='#ffffff'>\r\n  <tr>";
var fechaInicio = new Date();
fechaInicio.setYear(numeroAno);
fechaInicio.setMonth(numeroMes-1);
fechaInicio.setDate(1);
ajuste = fechaInicio.getDay();
tabla = tabla + "\r\n    <td align='center'>Su</td><td align='center'>Mo</td><td align='center'>Tu</td><td align='center'>We</td><td align='center'>Th</td><td align='center'>Fr</td><td align='center'>Sa</td></div>\r\n  <tr>";
for (var j=1; j<=ajuste; j++) {
tabla = tabla + "\r\n    <td></td>";
}
for (var i=1; i<10; i++) {
tabla = tabla + "\r\n    <td"
if ((i == diaHoy()) && (numeroMes == mesHoy()) && (numeroAno == anoHoy())) tabla = tabla + " bgcolor='#ff0000'";
tabla = tabla + "><input type='button' value='0" + i + "' onclick='javascript:opener.ano=self.document.Forma1.ano[self.document.Forma1.ano.selectedIndex].value; opener.mes=self.document.Forma1.mes[self.document.Forma1.mes.selectedIndex].value; opener.dia=" + i + "; opener.updateEditField(); self.close();'></td>";
if (((i+ajuste) % 7)==0) tabla = tabla + "\r\n  </tr>\r\n\  <tr>";
}
for (var i=10; i<=diasDelMes(numeroAno,numeroMes); i++) {
tabla = tabla + "\r\n    <td"
if ((i == diaHoy()) && (numeroMes == mesHoy()) && (numeroAno == anoHoy())) tabla = tabla + " bgcolor='#ff0000'";
tabla = tabla + "><input type='button' value='" + i + "' onclick='javascript:opener.ano=self.document.Forma1.ano[self.document.Forma1.ano.selectedIndex].value; opener.mes=self.document.Forma1.mes[self.document.Forma1.mes.selectedIndex].value; opener.dia=" + i + "; opener.updateEditField(); self.close();'></td>";
if (((i+ajuste) % 7)==0) tabla = tabla + "\r\n  </tr>\r\n\  <tr>";
}
tabla = tabla + "\r\n  </tr>\r\n</table>";
return tabla;
}

function dibujarMes(numeroAno,numeroMes) {
var html = "";
html = html + "<html>\r\n<head>\r\n  <title>" + titulo + "<"+"/title>\r\n</head>\r\n<body bgcolor='#ffffff' onunload='opener.updateEditField()'>\r\n  <div align='center'>\r\n  <form name='Forma1'>\r\n";
html = html + crearSelectorMes(numeroMes);
html = html + crearSelectorAno(numeroAno);
html = html + crearTablaDias(numeroAno,numeroMes);
html = html + "<center><p><input type='button' name='hoy' value='today: " + dia + "/" + mes + "/" + ano + "' onclick='opener.updateEditField(); self.close()'></center>";
html = html + "\r\n  </form>\r\n  </div>\r\n</body>\r\n</html>\r\n";
ventana = open("","calendario","width=220,height=270");
ventana.document.open();
ventana.document.writeln(html);
ventana.document.close();
ventana.focus();
}

function anoHoy() {
var fecha = new Date();
/*if (navigator.appName == "Netscape") return fecha.getYear() + 1900
else return fecha.getYear();
*/
return fecha.getFullYear();
}

function mesHoy() {
var fecha = new Date();
return fecha.getMonth()+1;
}

function diaHoy() {
var fecha = new Date();
return fecha.getDate();
}

function popupCalendar(editFieldName, title) {
ano = anoHoy();
mes = mesHoy();
dia = diaHoy();
campoDeRetorno = editFieldName;
titulo = title;
dibujarMes(ano,mes);
}

function updateEditField() {
//campoDeRetorno.value = dia + "/" + mes + "/" + ano;
campoDeRetorno.value = mes + "/" + dia + "/" + ano;
}

function sendCalForm(formSelect) {
	document.Formic.fromCal.value = "";
	document.Formic.toCal.value = "";
	gotoFunction(formSelect);
}

function getHTTPObject() {
	var xmlhttp;
	/*@cc_on
	@if (@_jscript_version >= 5)
		try {
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			} catch (E) {
				xmlhttp = false;
			}
		}
	@else
		xmlhttp = false;
	@end @*/
	if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
		try {
			xmlhttp = new XMLHttpRequest();
		} catch (e) {
			xmlhttp = false;
		}
	}
	return xmlhttp;
}

function bitmapSelection(radioID, color, nocolor)
{
	var radio = document.getElementById(radioID);
	if (radio != null && radio.checked == false) {
	    var name = radio.name;
		var form = radio.form;
		// unselect previously selected input of the same name
		// and also make the img's border invisible
		for(i=0; i<form.length; i++) {
			if (form[i].name == name && form[i].checked) {
				form[i].checked = false;
				var uid = form[i].id;
				var img = document.getElementById("img" + uid);
				if (img != null) {
					img.style.borderColor = nocolor;
				}
			}
		}
		// select the one
		radio.checked = true;
		var img = document.getElementById("img" + radioID);
		if (img != null) {
			img.style.borderColor = color;
		}
	}
}

function addLoadEvent(func) 
{
  var oldonload = window.onload;
  if (typeof window.onload != 'function') 
  {
    window.onload = func;
  }
  else 
  {
    window.onload = function() {
                           if (oldonload) {
                           oldonload();
                           }
                           func();
                    }
  }
}

// BTS #5120 - Favorite Folders
function ChooseFavoriteFolder(destination)
{
    var url = "FavoriteFolderTree.aspx?caller=" + encodeURIComponent(destination);
    OpenFavoriteFolderTreePopup(url);
    return false;
}

function AddToWishList(itemID)
{
    var url = "FavoriteFolderTree.aspx?caller=JUST_CLOSE_THE_POPUP"+itemID;
    var wnd = OpenFavoriteFolderTreePopup(url);
    wnd.add_close(FavoriteFolderTreePopupClose);
}

function OpenFavoriteFolderTreePopup(url)
{
    var wnd = radopen(url, "favoriteTreeWindow");
    wnd.setSize(436,460);
    wnd.center();
    wnd.set_title('Loading...');
    return wnd;
}

function FavoriteFolderTreePopupClose(sender, args)
{
    var retval = args.get_argument();
    if (retval != null && retval.match(/^JUST_CLOSE_THE_POPUP/))
    {
        __doPostBack("AddToWishList", retval);
    }
}
