// Button state controlling functions
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
  if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

// Helper used in image upload
function updateImage(url)
{
  document['BigImage'].src=url;
  return;
}

// Browser detection routine
function Is()
{
  // convert all characters to lowercase to simplify testing
  var agt=navigator.userAgent.toLowerCase();;
  // *** BROWSER VERSION ***
  // Note: On IE5, these return 4, so use is_ie5up to detect IE5.
  this.major = parseInt(navigator.appVersion);
  this.minor = parseFloat(navigator.appVersion);

  // Note: Opera and WebTV spoof Navigator.  We do strict client detection.
  // If you want to allow spoofing, take out the tests for opera and webtv.
  this.nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
        && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
        && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1));

  this.nav2 = (this.nav && (this.is_major == 2));
  this.nav3 = (this.nav && (this.major == 3));
  this.nav4 = (this.nav && (this.major == 4));
  this.nav4up = this.nav && (this.major >= 4);
  this.navonly = (this.nav && ((agt.indexOf(";nav") != -1) ||
          (agt.indexOf("; nav") != -1)));
  this.nav6 = (this.nav && (this.major == 5));
  this.nav6up = (this.nav && (this.major >= 5));
  this.gecko = (agt.indexOf('gecko') != -1);
  if (this.gecko)
    this.gecko_ver = agt.substr(agt.indexOf('gecko') + 6, 8);


  this.ie   = (agt.indexOf("msie") != -1);
  this.ie3  = (this.ie && (this.major == 2));
  this.ie4  = (this.ie && (this.major == 4));
  this.ie4up  = this.ie  && (this.major >= 4);


  this.ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
  this.ie3 = (this.ie && (this.major < 4));
  this.ie4 = (this.ie && (this.major == 4) && (agt.indexOf("msie 4")!=-1));
  this.ie4up  = (this.ie && (this.major >= 4));
  this.ie5    = (this.ie && (this.major == 4) && (agt.indexOf("msie 5.0")!=-1));
  this.ie5_5  = (this.ie && (this.major == 4) && (agt.indexOf("msie 5.5") !=-1));
  this.ie5up  = (this.ie && !this.ie3 && !this.ie4);
  this.ie5_5up =(this.ie && !this.ie3 && !this.ie4 && !this.ie5);
  this.ie6 = (this.ie && (this.major == 4) && (agt.indexOf("msie 6.")!=-1));
  this.ie6up  = (this.ie && !this.ie3 && !this.ie4 && !this.ie5 && !this.ie5_5);

  this.aol   = (agt.indexOf("aol") != -1);
  this.aol3  = (this.aol && this.ie3);
  this.aol4  = (this.aol && this.ie4);
  this.aol5  = (agt.indexOf("aol 5") != -1);
  this.aol6  = (agt.indexOf("aol 6") != -1);

  this.opera = (agt.indexOf("opera") != -1);
  this.opera2 = (agt.indexOf("opera 2") != -1 || agt.indexOf("opera/2") != -1);
  this.opera3 = (agt.indexOf("opera 3") != -1 || agt.indexOf("opera/3") != -1);
  this.opera4 = (agt.indexOf("opera 4") != -1 || agt.indexOf("opera/4") != -1);
  this.opera5 = (agt.indexOf("opera 5") != -1 || agt.indexOf("opera/5") != -1);
  this.opera5up = (this.opera && !this.opera2 && !this.opera3 && !this.opera4);

  this.webtv = (agt.indexOf("webtv") != -1);

  this.TVNavigator = ((agt.indexOf("navio") != -1) || (agt.indexOf("navio_aoltv") != -1));
  this.AOLTV = this.TVNavigator;

  this.hotjava = (agt.indexOf("hotjava") != -1);
  this.hotjava3 = (this.hotjava && (this.major == 3));
  this.hotjava3up = (this.hotjava && (this.major >= 3));
}

if(typeof(is)=="undefined")
  var is=new Is();

// Helper used in dynamic list paging control
function getPageURL(URL, SelectAllCheckBoxID ,param, inputID, itemsPerPage)
{
  var ret = URL;
  //var n = document.all.item(inputID).value;
  var txtPage = document.getElementById(inputID);
  if( txtPage != null )
  {
    var n = txtPage.value;
      ret += "&" + param + "=" + (n*itemsPerPage-itemsPerPage+1);
    if(SelectAllCheckBoxID.length != 0)
    {
    var chkAll = document.getElementById(SelectAllCheckBoxID);
      if(chkAll != null)
      {
        if( chkAll.checked == true )
          ret += "&SELALL=1";
        else
          ret += "&SELALL=0";
      }
    }
  }

  return document.location.href=ret;
}

// HTML processing
function htmlEscape(s)
{
	s=s.replace(/&/g,'&amp;');
	s=s.replace(/>/g,'&gt;');
	s=s.replace(/</g,'&lt;');
	s=s.replace(/"/g,'&quot;');
	s=s.replace(/'/g,'&apos;');
	s=s.replace(/%/g,'&percent;');
   return s;
}

function htmlUnescape(s)
{
	s=s.replace(/&amp;/g,'&');
	s=s.replace(/&gt;/g,'>');
	s=s.replace(/&lt;/g,'<');
	s=s.replace(/&quot;/g,'"');
	s=s.replace(/&apos;/g,'\'');
	s=s.replace(/&percent;/g,'%');
   return s;
}

// Common SYI submission function
function doSave(form)
{
  var editor = document.getElementById('richEdit').contentWindow.document;

  if(is.nav)
  {
    if (document.forms[form].EDITORMODE.value == "html")
    {
      var html = editor.body.ownerDocument.createRange();
      html.selectNodeContents(editor.body);
      editor.body.innerHTML = html.toString();
    }
    document.forms[form].HTMLCONTENT.value = htmlEscape(editor.body.innerHTML);
  }
  else
  {
    if (document.forms[form].EDITORMODE.value == "html")
      editor.body.innerHTML = editor.body.innerText;
    document.forms[form].HTMLCONTENT.value = htmlEscape(editor.body.innerHTML);
  }
}

// Universal form submit stub
function doSubmit(form, mode)
{
  document.forms[form].MODE.value = mode;
  document.forms[form].submit();
}

// Checked SYI submission function
function doSubmitWithCheck(form, mode, mainCtg, scndCtg)
{
  if ( CheckInformations(mainCtg, scndCtg) == false )
  {
    return false;
  }

  doSave(form);
  document.forms[form].MODE.value = mode;
  return true;
}

// SYI resubmit function used for category selector
function doSellSubmit(form, mode, cmbID, isButtonSelect)
{
  var selElement = document.getElementById(cmbID);

  if (isButtonSelect || (selElement.selectedIndex != 1 && parseInt(selElement.value) >= 0))
  {
    if (isButtonSelect)
    {
      // Handle the case of last level in categories - for button, not combo
      var selParentElement = document.getElementById(cmbID+"Parent");
      selElement.value = selParentElement.value;
    }
    doSave(form);
    document.forms[form].MODE.value = mode;
    document.forms[form].submit();
  }
}

// Used in  edit item details form to go to a selected Item ID
function goItemID(cgi)
{
  var nameValues = document.getElementById('ItemID').value;
  var url_path = cgi + "?PAGE=SELL&MODE=E&PRODUCTID=";
  var addCalURL = url_path + nameValues;
  location.href = addCalURL;
}

// Various helper checking routines

// Used from registration.js
function isEmailEx(str)
{
  // are regular expressions supported?
  var supported = 0;
  if (window.RegExp) {
    var tempStr = "a";
    var tempReg = new RegExp(tempStr);
    if (tempReg.test(tempStr)) supported = 1;
  }

  if (!supported)
    return IsEmail(str);

  var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
  var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{1,}|[0-9]{1,})(\\]?)$");
  return (!r1.test(str) && r2.test(str));
}

// Used from billing checking below
function isPhone(str) {
  // are regular expressions supported?
  var supported = 0;
  if (window.RegExp) {
    var tempStr = "a";
    var tempReg = new RegExp(tempStr);
    if (tempReg.test(tempStr)) supported = 1;
  }

  if (!supported)
    return !isNaN(parseInt(str));

//	var re = /^\([1-9]\d{2}\)\d{3}\-\d{4}$/;
//	var re = /^\D*\d{3}?\D*\d{3}?\D*\d{4}?\D*$/;
//	var re = /^\D*\d{3}?\D*\d{3}?\D*\d{1,4}-?\d{1,4}\D*$/;
//	var re = /^\+{0,1}\d{0,3}[ |-]{0,1}\(\d{2,3}\)[ |-]{0,1}\d{3}?\D*\d{1,4}-?\d{1,4}$/;
  var re = /^\+{0,1}\d{0,3}[ |-]{0,1}\(\d{2,3}\)[ |-]{0,1}\d{3}?\D*\d{1,4}-?\d{1,4}|^\+{0,1}\d{0,3}[ |-]{0,1}\d{3}?\D*\d{1,4}-?\d{1,4}$/;

  return (re.test(str));
}

function CheckPhone(phone, elm)
{
	var red = "#CC0000";
	var black = "#000000";

	if(!isPhone(phone))
	{
		ChangeColor(elm, red);
		return false;
	}
	ChangeColor(elm, black);
	return true;
}

// Used from register page
function IsEmail(strEmail)
{
  var iAmp = strEmail.indexOf('@');
  if (iAmp < 1)
  {
    return false;
  }
  var iPnt = strEmail.indexOf('.', iAmp);
  if ((iPnt < iAmp) || (iPnt > strEmail.length-2))
  {
    return false;
  }
  return true;
}

// Used in doSubmitWithCheck for checked SYI submission
function CheckInformations(mainCtg, scndCtg)
{
  var bValidRequired = true;
  var bValidNaNs = true;
  var bValidPrices = true;
  var red = "#CC0000";
  var mainCategory = document.getElementById('cmbMainCategoryID').value;
  var scndCategory = document.getElementById('cmbSecondCategoryID').value;
  var itemTitle = document.getElementById('EDTITLEXID').value;
  var itemCity = document.getElementById('edLocationCity').value;
//  var itemRegion = document.getElementById('edLocationRegion').value;
  var itemState = document.getElementById('cmbLocationStateID').value;
  var itemStartPrc = document.getElementById('edStartPriceID').value;
  var itemReservePrc = document.getElementById('edReservedPriceID').value;
  var itemGetNowPrc = document.getElementById('edGetNowPriceID').value;

  if ( parseInt(mainCategory) <= 0 )
  {
    //alert('Please select Main Category!');
    ChangeColor("lbMainCategory", red);
    bValidRequired = false;
  }

  if ( parseInt(mainCtg) < 2 )
  {
    //alert('You select topmost category in main category!');
    ChangeColor("lbMainCategory", red);
    bValidRequired = false;
  }

  if ( parseInt(scndCtg) == 1 )
  {
    //alert('You select topmost category in second category!');
    ChangeColor("lbSecondCategory", red);
    //return false;
    bValidRequired = false;
  }

  if ( parseInt(mainCategory) == parseInt(scndCategory) )
  {
    //alert('Second category should not coincided with the main category!');
    ChangeColor("lbSecondCategory", red);
    bValidRequired = false;
  }
  if ( itemTitle == "" )
  {
    //alert('Please input Item Title!');
    ChangeColor("lbTitle", red);
    bValidRequired = false;
  }
  if ( itemCity == "" )
  {
    //alert('Please input Item Title!');
    ChangeColor("lbCity", red);
    bValidRequired = false;
  }
//  if ( itemRegion == "" )
//  {
//    //alert('Please input Item Title!');
//    ChangeColor("lbRegion", red);
//    bValidRequired = false;
//  }
  if ( itemState == "" )
  {
    //alert('Please input Item Title!');
    ChangeColor("lbState", red);
    bValidRequired = false;
  }

  var fReservePrice = parseMoney(itemReservePrc);
  var fGetNowPrice = parseMoney(itemGetNowPrc);
  var fStartPrice = parseMoney(itemStartPrc);

    if (fStartPrice < 0.01)
    {
      ChangeColor("lbStartPrice", red);
      bValidRequired = false;
    }
    else
    {
      if (fReservePrice > 0 && fGetNowPrice > 0 && fGetNowPrice < fReservePrice || ( fReservePrice < 0.0 && fGetNowPrice < 0.0 ))
      {
        ChangeColor("lbGetNowPrice", red);
        ChangeColor("lbReservedPrice", red);
        bValidPrices = false;
      }
      if (fReservePrice > 0 && fReservePrice < fStartPrice || fReservePrice < 0.0)
      {
        ChangeColor("lbReservedPrice", red);
        bValidPrices = false;
      }
      if (fGetNowPrice > 0 && fGetNowPrice < fStartPrice || fGetNowPrice < 0.0 )
      {
        ChangeColor("lbGetNowPrice", red);
        bValidPrices = false;
      }
  }
  if(fStartPrice > 0.0 )
  	document.getElementById('edStartPriceID').value = fStartPrice;
  if(fReservePrice > 0.0 )
  	document.getElementById('edReservedPriceID').value = fReservePrice;
  if(fGetNowPrice > 0.0 )
  	document.getElementById('edGetNowPriceID').value = fGetNowPrice;


  var el = document.getElementById("ValidationMsg");

  var pisz = document.getElementById('edtPaymentInstruction').value.length ;
  if ( pisz > 250) {
    el.innerHTML += "<br>The information you've entered exceeded maximum length for following fields:<br>" ;
    el.innerHTML += ('Field <i>"Payment Instruction"</i>: 250 characters max, enetered ' + pisz + '<br>') ;
    ChangeColor("lblpayminstr", red);
    bValidRequired = false;
  }

  ChangeColor("ValidationMsg", red);
  if(bValidRequired && bValidNaNs && bValidPrices)
    el.style.visibility = 'hidden';
  else
    el.style.visibility = 'visible';

  window.location = "#VALMSG";
  return bValidRequired && bValidNaNs && bValidPrices;
}

// Countdown timer implementation
var timeTag = "SPAN";
var timeDecrementor;
function decrementTime()
{
  var timeValues = document.getElementsByTagName(timeTag);
  for (var i = 0; i < timeValues.length; i++)
  {
    if (timeValues[i].getAttribute("type") == "auctionTime")
    {
      var diffString = "";
      timePeriod = timeValues[i].getAttribute("period");

      if (timePeriod > 0)
      {
        timeValues[i].setAttribute("period", timePeriod - 1);

        diffDays = Math.floor(timePeriod/86400);
        if(diffDays > 0)
        {
          diffString = diffDays;
          if (diffDays > 1)
            diffString += " days ";
          else
            diffString += " day ";
          timePeriod -= diffDays * 86400;
        }

        diffHours = Math.floor(timePeriod/3600);
        diffString += diffHours + " hours ";
        timePeriod -= diffHours * 3600;

        diffMinutes = Math.floor(timePeriod/60);
        if (diffDays == 0)
        {
          diffString += diffMinutes + " mins ";
        }
        timePeriod -= diffMinutes * 60;

        diffSeconds = timePeriod;
        if (diffDays == 0)
        {
          if (diffSeconds < 10)
            diffString += "0";
          diffString += diffSeconds + " sec ";
        }

        if ((diffDays == 0) && (diffHours == 0) && (diffMinutes == 0))
          diffString = "less than minute";
      }
      else
      {
        diffString = "Auction Ended";
      }
      timeValues[i].innerHTML = diffString;
      break;
    }
  }
  timeDecrementor = window.setTimeout(decrementTime, 1000);
}

// Begin Thumbs Selector

var UserRating = 0;
function Rate(img1, img2, img3, img4, img5, id)
{  
   document.getElementById(1).src = img1;
   document.getElementById(2).src = img2; 
   document.getElementById(3).src = img3; 
   document.getElementById(4).src = img4; 
   document.getElementById(5).src = img5; 
   UserRating = parseInt(id);
}

function changeImage(id, img)
{
  note = document.getElementById("the_note");

  nVal = parseInt(id) - 3;
  var checkVal = parseInt(id);

  if(checkVal != UserRating)
  { 
    document.getElementById(id).src = img;
  }

   switch (nVal)
   {
      case -2:
        note.innerHTML = "-2 - Bad";
        break;
      case -1:
        note.innerHTML = "-1 - Poor";
        break;
      case 0:
        note.innerHTML = "0 - Normal";
        break;
      case 1:
        note.innerHTML = "1 - Good";
        break;
      case 2:
        note.innerHTML = "2 - Exellent";
        break;
   }
}

// BEGIN Stargraph selector
var bIsStar = false;
function OverStar(StarId, halfStarPath, nIsStar)
{
  bIsStar = (nIsStar == 1) ? true : false;
  note = document.getElementById("the_note");

  nVal = (bIsStar) ? parseInt(StarId) : parseInt(StarId) - 3;

  if (bIsStar)
  {
    if (StarId == 1)
      note.innerHTML = "rate with " + nVal + " star"
    else
        note.innerHTML = "rate with " + nVal + " stars"
  }
  else
  {
    switch (nVal)
    {
      case -2:
        note.innerHTML = "-2 - Bad";
        break;
      case -1:
        note.innerHTML = "-1 - Poor";
        break;
      case 0:
        note.innerHTML = "0 - Normal";
        break;
      case 1:
        note.innerHTML = "1 - Good";
        break;
      case 2:
        note.innerHTML = "2 - Exellent";
        break;
    }
  }

  for (i = UserRating + 1; i <= StarId; i++)
  {
      document.getElementById(i).src = halfStarPath;
  }
}

function Rated(StarId, fullStarPath, emptyStarPath)
{
  UserRating = parseInt(StarId);

  for (i = 1; i <= StarId; i++)
  {
    document.getElementById(i).src = fullStarPath;
  }
  restore(emptyStarPath);
}

function restore(emptyStarPath)
{
  for (i = UserRating + 1; i <= 5; i++)
  {
    document.getElementById(i).src = emptyStarPath;
  }

  note = document.getElementById("the_note");
  nVal = (bIsStar) ? parseInt(UserRating) : parseInt(UserRating) - 3;

  if (UserRating == 0)
    note.innerHTML = (bIsStar) ? "click on star to Rate Me" : "Please click to rate me:"
  else
    if (bIsStar)
    {
      if (UserRating == 1)
        note.innerHTML = "rated with " + nVal + " star"
      else
        note.innerHTML = "rated with " + nVal + " stars"
    }
    else
    {
      switch (nVal)
      {
        case -2:
          note.innerHTML = "-2 - Bad";
          break;
        case -1:
          note.innerHTML = "-1 - Poor";
          break;
        case 0:
          note.innerHTML = "0 - Normal";
          break;
        case 1:
          note.innerHTML = "1 - Good";
          break;
        case 2:
          note.innerHTML = "2 - Exellent";
          break;
      }
    }
}
// END Stargraph selector

// Used for feedback submit
function doSubmitPersonalFeedback(form, mode)
{
  document.forms[form].MODE.value = mode;
  document.forms[form].RATE.value = UserRating;
  if( document.forms[form].RATE.value == 0  )
  {
	alert('You should rate person first!');
	return false;
  }
	document.forms[form].submit();
}

// Used by SYI and feedback pages
function LimitLength(formObj, e, size)
{
  var returnvalue = true;
  if(!e.which && formObj.value.length > size) // IE
  {
    formObj.value = formObj.value.substr(0,size);
    returnvalue = false;
  }
  else if(e.which && e.which!=8 && formObj.value.length > size) //NS4, NS6+ (allow backspace key)
  {
    formObj.value = formObj.value.substr(0,size);
    returnvalue = false;
  }
  return returnvalue;
}

// BEGIN SYI OnScreen fees calculation
// Calculates an abstract ranged fee value
function getRangedFee(fTarget, arrBounds, arrFeeValues, arrPercentage)
{
	var fFee = 0.0;
	var nFees = arrFeeValues.length;

	if (fTarget > 0.0)
	{
		for (var i = 0; i < nFees; ++i)
		{
			if(fTarget >=  arrBounds[i] && fTarget <  arrBounds[i+1])
			{
				if (arrPercentage[i] > 0)
				{
					var fPercentAmount =
						fTarget / 100.0 * arrPercentage[i];
					if (fPercentAmount < arrFeeValues[i])
					{
						fFee = fPercentAmount;
						break;
					}
					else
					{
						fFee = arrFeeValues[i];
						break;
					}
				}
				else
				{
					fFee = arrFeeValues[i];
					break;
				}
			}
		}
	}
	return g_bIsSecondCategory? fFee*2: fFee; // Double fee if a second category is selected
}

// Calculates Starting price fee value
function getInitial_InsertionFee(fTarget)
{
  return fFee = getRangedFee(fTarget, g_arrInsertionFeesBounds, g_arrInsertionFeesInitials, g_arrInsertionFeesPercentage);
}
// Calculates Reserved price fee value
function getInitial_ReservedPriceFee(fTarget)
{
  return getRangedFee(fTarget, g_arrReservedFeesBounds, g_arrReservedFeesInitials, g_arrReservedFeesPercentage);
}
// Called on onChanged and onKeyUp
function OnSYIChanged(srcElementID)
{
	switch (srcElementID)
	{
		//Edit box 'StartPrice'
		case "edStartPriceID":
		{
			var oTarget = window.document.getElementById("lblStartPriceFeeID");
			var oSource = window.document.getElementById(srcElementID);
			if (!g_bIsRealEstate)
			{
				var fStartPrice = 0.0;
				fStartPrice = parseMoney(oSource.value);
				var strValue = "($" + getInitial_InsertionFee(fStartPrice).toFixed(2) + ")";
				oTarget.innerHTML = strValue;
			}
			else
				oTarget.innerHTML = "";
		}
		break;
		//Edit box 'ReservedPrice'
		case "edReservedPriceID":
		{
			var oTarget = window.document.getElementById("lblReservedPriceFeeID");
			if (!g_bIsRealEstate)
			{
				var fReservedPrice = 0.0;
				fReservedPrice = parseMoney(window.document.getElementById(srcElementID).value);
				var strValue = "($" + getInitial_ReservedPriceFee(fReservedPrice).toFixed(2) + ")";
				oTarget.innerHTML = strValue;
			}
			else
				oTarget.innerHTML = "";
		}
		break;
		//Images fees update
		case "lblImageFeeID":
		{
			for (i = 1; i <= g_nImagesCount; ++i)
			{
				var oTarget = window.document.getElementById(srcElementID + i.toString());
				if (i > 1)
				{
					var fFee = g_bIsSecondCategory? g_dblAditionalPicFeesInitials*2: g_dblAditionalPicFeesInitials;
					oTarget.innerHTML = "($" + fFee.toFixed(2) + ")";
				}
				else
					oTarget.innerHTML = "(Free)";
			}
		}
		break;
		//Combobox 'Duration'
 		case "cmbDurationID":
 		{
			var oTarget = window.document.getElementById("lblDurationRealEstateFeeID");
			var oSource = window.document.getElementById(srcElementID);
			if (g_bIsRealEstate)
			{
				var fFee = 0.0;
				var nDuration = 0;
				if( !isNaN(Number(oSource.value)))
				{
					nDuration = parseFloat(oSource.value);
					fFee = nDuration < 30? g_dblShortRealEstateFeeInitials: g_dblLongRealEstateFeeInitials;
				}
				fFee = g_bIsSecondCategory? fFee*2: fFee;
				var strValue = "($" + fFee.toFixed(2) + ")";
				oTarget.innerHTML = strValue;
			}
			else
				oTarget.innerHTML = "";
		}
		break;
	}
}
// Called on onClicked
function OnSYIClicked(srcElementID)
{
	var oSource;
	switch (srcElementID)
	{
		//Check box 'Featured'
		case "edtFeaturedID":
		{
			var oTarget = window.document.getElementById("lblFeaturedFeeID");
			var bRes = window.document.getElementById(srcElementID).checked;
			oTarget.innerHTML = "($0.00)";
			if( bRes )
			{
				var fFee = g_bIsSecondCategory? g_dblFeaturedFeesInitials*2: g_dblFeaturedFeesInitials;
				oTarget.innerHTML = "($"+ fFee.toFixed(2) +")";
			}
		}
		break;
		//Check box 'Bold'
		case "edtBoldID":
		{
			var oTarget = window.document.getElementById("lblBoldFeeID");
			var bRes = window.document.getElementById(srcElementID).checked;
			oTarget.innerHTML = "($0.00)";
			if( bRes )
			{
				var fFee = g_bIsSecondCategory? g_dblBoldFeesInitials*2: g_dblBoldFeesInitials;
				oTarget.innerHTML = "($"+ fFee.toFixed(2) +")";
			}
		}
		break;
		//Check box 'Highlight'
		case "edtHighlightID":
		{
			var oTarget = window.document.getElementById("lblHighlightFeeID");
			var bRes = window.document.getElementById(srcElementID).checked;
			oTarget.innerHTML = "($0.00)";
			if( bRes == true )
			{
				var fFee = g_bIsSecondCategory? g_dblHighlightFeesInitials*2: g_dblHighlightFeesInitials;
				oTarget.innerHTML = "($"+ fFee.toFixed(2) +")";
			}
		}
	}
}
// END SYI OnScreen fees calculation

// BEGIN Used by auction item details
function doDateAvailable(chk, Month, Year, Day)
{
	chkBox = document.getElementById(chk);
	cmbMonth = document.getElementById(Month);
	cmbYear = document.getElementById(Year);
	cmbDay = document.getElementById(Day);

	cmbMonth.disabled = !chkBox.checked
	cmbYear.disabled = !chkBox.checked
	cmbDay.disabled = !chkBox.checked

	SetAIDPModified();
}
//Global variable to hold the AuctionItemDEtailsPage state
var g_AIDPChanged = false;
//AuctionItemDEtailsPage controls on change handler
function SetAIDPModified(control_id, cost)
{
	if( control_id == 'edAgreedSaleTaxPercent' && cost != null)
	{
		var percent = parseMoney( document.getElementById(control_id).value );
		var total = 0.0;
		if( percent >= 0.0 )
		{
			var tax_amount = percent * cost / 100.0;
   			var shipping_price = parseMoney( document.getElementById('edAgreedShippedPrice').value );
			var total = 0.0
			if( shipping_price >= 0.0 )
				total = shipping_price + cost + tax_amount;
			else
				total = cost + tax_amount;
			document.getElementById('lblAgreedSaleTaxAmount').innerHTML = Math.round( tax_amount * 100 ) / 100;
			document.getElementById('lblTotal').innerHTML = Math.round( total * 100 ) / 100;
		}
		else
		{
			var shipping_price = parseMoney( document.getElementById('edAgreedShippedPrice').value );
			var total = 0.0
			if( shipping_price >= 0.0 )
				total = shipping_price + cost;
			else
				total = cost;
			document.getElementById('lblAgreedSaleTaxAmount').innerHTML = 0.0;
			document.getElementById('lblTotal').innerHTML = Math.round( total * 100 ) / 100;
		}
	}
	else if( control_id == 'edAgreedShippedPrice' && cost != null)
	{
		var shipping_price = parseMoney( document.getElementById(control_id).value );
		var percent = parseMoney( document.getElementById('edAgreedSaleTaxPercent').value );
		if( percent >= 0.0 )
		{
			var total = 0.0;
			if( shipping_price >= 0.0 )
				total = shipping_price + cost + cost * percent / 100.0;
			else
				total = cost + cost * percent / 100.0;
			document.getElementById('lblTotal').innerHTML = Math.round( total * 100 ) / 100;
		}
		else
		{
			var total = 0.0;
			if( shipping_price >= 0.0 )
				total = shipping_price + cost;
			else
				total = cost;

			document.getElementById('lblTotal').innerHTML = Math.round( total * 100 ) / 100;
		}
	}
	g_AIDPChanged = true;
}

// Helper used in doSubmitProductDetails below
function checkMoney(ID, alertmsg)
{
  control = document.getElementById(ID);
  if( parseMoney(control.value) < 0.0 )
  {
    alert(alertmsg);
    control.focus();
    return false;
  }
  return true;
}

function doSubmitProductDetails(form, mode)
{
  if (!checkMoney('edAgreedShippedPrice', 'Invalid shipped price!')) return false;

  if (!checkMoney('edAgreedSaleTaxPercent', 'Invalid sales tax rate!')) return false;

  if (!checkMoney('edItemCost', 'Invalid actual item cost!')) return false;

  if (!checkMoney('edShippingCost', 'Invalid actual shipping cost!')) return false;

  document.forms[form].MODE.value = mode;
  document.forms[form].submit();
}
// END Used by auction item details

// Used by auctions selling Items I've Sold to submit multiple emails
function doSubmitMultipleEmails(SelectAllCheckBoxID, obj, cgiURL, strPage)
{
	var strhref = cgiURL + "?PAGE=" + strPage;
	if( g_arrSoldItemsChks.length > 0 )
	{
		var isChecked = false;
		strhref += "&ITEMIDS=";
		for (i=0;i < g_arrSoldItemsChks.length;i++)
		if (g_arrSoldItemsChks[i] != null && g_arrSoldItemsChks[i].length != 0)
		{
			if  (document.getElementById(g_arrSoldItemsChks[i]).checked == true)
			{
				var arrTemp = g_arrSoldItemsChks[i].split("_");
				if (arrTemp.length == 2)
				{
					strhref += (arrTemp[1] + ";");
					isChecked = true;
				}
			}
		}
		if (!isChecked)
		{
			//There is no checked itenms
			alert("Please select an item, than try again.");
			obj.href = "";
			return false;
		}
		document.location.href = strhref;
		return true;
	}
	else
	{
		//There is no sold items
		obj.href = "";
		return false;
	}
}

// Used by auctions selling
function doSubmitDownload(SelectAllCheckBoxID, userID, obj, cgiURL, strPage)
{
	var strhref = cgiURL + "?PAGE=" + strPage + "&USERID=" + userID + "&INVOICE=0";
	if(SelectAllCheckBoxID.length != 0)
	{
		var chkAll = document.getElementById(SelectAllCheckBoxID);
		if (chkAll != null)
		{
			if (chkAll.checked == true)
			{
				strhref += "&SELALL=1";
				//If 'select all' checkbox has been selected
				//then we should find out the checkboxes with checked set to false
				//and in the future exclude them from the all items
				if( g_arrSoldItemsChks.length > 0 )
				{
     					strhref += "&ITEMIDS=";
					for(i=0;i < g_arrSoldItemsChks.length;i++)
					if( g_arrSoldItemsChks[i] != null && g_arrSoldItemsChks[i].length != 0)
					{
						if( document.getElementById(g_arrSoldItemsChks[i]).checked == false)
						{
							var arrTemp = g_arrSoldItemsChks[i].split("_");
							if( arrTemp.length == 2 )
							{
								strhref += (arrTemp[1] + ";");
							}
						}
					}
				}
				else
				{
					//There is no sold items
     					obj.href = "";
					return false;
				}
			}
			else
			{
				strhref += "&SELALL=0";
				//If 'select all' checkbox has not been selected
				//then we should find out the checkboxes with checked set to true
				//and in the future include them into the items list
				if( g_arrSoldItemsChks.length > 0 )
				{
					var isChecked = false;
					strhref += "&ITEMIDS=";
					for(i=0;i < g_arrSoldItemsChks.length;i++)
					if(g_arrSoldItemsChks[i] != null && g_arrSoldItemsChks[i].length != 0)
					{
						if( document.getElementById(g_arrSoldItemsChks[i]).checked == true)
						{
							var arrTemp = g_arrSoldItemsChks[i].split("_");
							if( arrTemp.length == 2 )
							{
								strhref += (arrTemp[1] + ";");
								isChecked = true;
							}
						}
					}
					if (!isChecked)
                                        {
						//There is no checked itenms
						alert("Please select an item, than try again.");
						obj.href = "";
						return false;
					}
				}
				else
				{
					//There is no sold items
					obj.href = "";
					return false;
				}

			}
			document.location.href = strhref;
			return true;
		}
	}
	obj.href = "";
	return false;
}

// Helper routine used across validation functions to change invalid control's color
function ChangeColor(id, clr)
{
  var el;
  el = document.getElementById(id);
  el.style.color = clr;
}

// Helper routine used across validation functions to change control's value
function ChangeValue(id, val)
{
  var el = document.getElementById(id);
  el.innerHTML = val;
}

// Used in ask question page
function ValidateQuestionMessage(id1, len)
{
  var bOK = true ;
  var lblerr = document.getElementById('lbMessage') ;
  var pisz = document.getElementById(id1).value.length ;

  if(pisz == 0)
  {
    ChangeValue('lbMessage', 'Question content can not be empty<br>');
    bOK = false ;
  }
  else
  {
    lblerr.innerHTML = "" ;
  }

  if ( pisz > len)
  {
    lblerr.innerHTML = "Question content is too long. Please enter less than " + len + " characters total.<br>";
    bOK = false;
  }

  if(bOK == true)
  {
    doSubmit('ASKQUESTION', 'S');
  }
  else
  {
    ChangeColor('lbMessage', '#CC0000');
  }
}

// Used in my account page
function OnViewAccountStatus()
{
	var ret = "auctions.cgi?PAGE=MYACCNTSTAT"
	if(document.forms["ViewAccountStatus"].AccountStatusMode[0].checked)
   {
		document.location.href = ret;
      return true;
   }
	var mmFrom  	= parseInt(Number(document.getElementById("mmFrom").value));
	var ddFrom  	= parseInt(Number(document.getElementById("ddFrom").value));
	var yyyyFrom  	= parseInt(Number(document.getElementById("yyyyFrom").value));

	var mmTo  	= parseInt(Number(document.getElementById("mmTo").value));
	var ddTo  	= parseInt(Number(document.getElementById("ddTo").value));
	var yyyyTo  = parseInt(Number(document.getElementById("yyyyTo").value));

	if(isNaN(mmFrom) || mmFrom<1 || mmFrom>12 ||
	   isNaN(ddFrom) || ddFrom<1 || ddFrom>31 ||
	   isNaN(yyyyFrom) || yyyyFrom<1970 || yyyyFrom>2038 ||
	   isNaN(mmTo) || mmTo<1 || mmTo>12 ||
	   isNaN(ddTo) || ddTo<1 || ddTo>31 ||
	   isNaN(yyyyFrom) || yyyyFrom<1970 || yyyyFrom>2038)
	{
		alert("Invalid data");
	   return false;
	}

  var from = mmFrom + "/" + ddFrom + "/" + yyyyFrom;
  var to   = mmTo + "/" + ddTo + "/" + yyyyTo;

  ret += "&FROM="+from+"&TO="+to;
  document.location.href=ret;
  return true;
}

// Used in my account page
function OnViewSelectedInvoice()
{
  var ret = "auctions.cgi?PAGE=VIEWINV"

  ret += "&FOR="+document.getElementById("selectMonth").value;
  return document.location.href=ret;
}

// Used ot submit violation report
function doSubmitViolationReport()
{
  if(!is.nav)
    el = document.getElementById('VIOLTEXT');
  else
    el = eval("document.forms['VIOLREP']."+'VIOLTEXT');

  if(el.value != "")
  {
    document.forms['VIOLREP'].submit();
    return;
  }

  ChangeValue('lbMessage', '&nbsp Violation report can not be empty');
  ChangeColor('lbMessage', '#CC0000');
}

//Page AUCTSELL, updates the checkboxes near the sold items
function UpdateAllChks(bState)
{
  for(i=0;i < g_arrSoldItemsChks.length;i++)
  if( g_arrSoldItemsChks[i] != null  && g_arrSoldItemsChks[i].length != 0)
    document.getElementById(g_arrSoldItemsChks[i]).checked = bState;
}

// Support of checked list for paging control
function appendSelectAllChk(SelectAllCheckBoxID, obj)
{
	if(SelectAllCheckBoxID.length != 0)
	{
		var chkAll = document.getElementById(SelectAllCheckBoxID);
		if(chkAll != null)
		{
			var nBookmarkIndex = obj.href.lastIndexOf("#");
			if( nBookmarkIndex > 0 )
			{
				var arrURL = obj.href.split('#');
				if( arrURL.length == 2 )
				{
					if( chkAll.checked == true )
						obj.href = arrURL[0] + "&SELALL=1#" + arrURL[1];
					else
						obj.href = arrURL[0] + "&SELALL=0#" + arrURL[1];
				}
			}
			else
			{
				if( chkAll.checked == true )
					obj.href += "&SELALL=1";
				else
					obj.href += "&SELALL=0";
			}
		}
	}
}

// BEGIN Submit of user preferences from my auction preferences page
// Used in CheckBillingInfo below
function CheckRequiredValue(val, elm)
{
	var red = "#CC0000";
	var black = "#000000";
	if (val == "")
	{
		ChangeColor(elm, red);
		return false;
	}
	ChangeColor(elm, black);
	return true;
}

// Used in CheckBillingInfo below
function CheckRequiredValueInSelect(val, elm)
{
	var red = "#CC0000";
	var black = "#000000";
	if (val == 0)
	{
		ChangeColor(elm, red);
		return false;
	}
	ChangeColor(elm, black);
	return true;
}

// Used in CheckBillingInfo below
function CheckExpirationDate(m, y, elm)
{
	var red = "#CC0000";
	var black = "#000000";
	var now = new Date();
	var year = now.getYear();
	var month = now.getMonth() + 1;

	if(y == 0 || m == 0 || (y < year) || ((y == year) && (m < month)))
	{
		ChangeColor(elm, red);
		return false;
	}
	ChangeColor(elm, black);
	return true;
}

// Used in CheckCreditCard below
function ValidCard(cardNumber, cardType)
{
 var isValid = false;
  var ccCheckRegExp = /[^\d ]/;
  isValid = !ccCheckRegExp.test(cardNumber);

  if (isValid)
  {
    var cardNumbersOnly = cardNumber.replace(/ /g,"");
    var cardNumberLength = cardNumbersOnly.length;
    var lengthIsValid = false;
    var prefixIsValid = false;
    var prefixRegExp;

    switch(cardType)
    {
	//<<HovhannesT
	// for additional types and characteristics see http://www.beachnet.com/~hstiles/cardtype.html
      case "MC":
        lengthIsValid = (cardNumberLength == 16);
        prefixRegExp = /^5[1-5]/;
        break;

      case "VISA":
        lengthIsValid = (cardNumberLength == 16 || cardNumberLength == 13);
        prefixRegExp = /^4/;
        break;

      case "AMEX":
        lengthIsValid = (cardNumberLength == 15);
        prefixRegExp = /^3(4|7)/;
        break;

     case "DISC":
        lengthIsValid = (cardNumberLength == 16);
        prefixRegExp = /^6011/;
        break;

      default:
        prefixRegExp = /^$/;
        alert("Card type not found");
    }

    prefixIsValid = prefixRegExp.test(cardNumbersOnly);
    isValid = prefixIsValid && lengthIsValid;
  }

  if (isValid)
  {
    var numberProduct;
    var numberProductDigitIndex;
    var checkSumTotal = 0;

    for (digitCounter = cardNumberLength - 1;digitCounter >= 0;digitCounter--)
    {
      checkSumTotal += parseInt (cardNumbersOnly.charAt(digitCounter));
      digitCounter--;
      numberProduct = String((cardNumbersOnly.charAt(digitCounter) * 2));
      for (var productDigitCounter = 0;productDigitCounter < numberProduct.length;productDigitCounter++)
      {
        checkSumTotal +=
          parseInt(numberProduct.charAt(productDigitCounter));
      }
    }
    isValid = (checkSumTotal % 10 == 0);
  }
  return isValid;
}

// Used in CheckBillingInfo below
function CheckCreditCard(cardNumber,cardType, elm)
{
	var red = "#CC0000";
	var black = "#000000";

	if(!ValidCard(cardNumber, cardType))
	{
		ChangeColor(elm, red);
		return false;
	}
	ChangeColor(elm, black);
	return true;
}

// Used in doSubmitWithFormCheck below
function CheckBillingInfo()
{

	var bResult = true;

	var cardNumber = String(document.getElementById("CCNUM").value).replace(/ /g,"");
	var cardType = document.getElementById("CCTYPE").value;

	var cardFName = document.getElementById("CCFNAME").value;
	var cardLName = document.getElementById("CCLNAME").value;

	var cardExpYear = document.getElementById("cmbYear").value;
	var cardExpMonth = document.getElementById("cmbMonth").value;

	var billStreet = document.getElementById('BILLSTRADDR').value;
	var billCity = document.getElementById('BILLCITY').value;
	var billState = document.getElementById('BILLSTATE').value;
	var billZip = document.getElementById('BILLZIP').value;
	var billPhon = document.getElementById('BILLPHONE').value;

	var shipStreet = document.getElementById('SHIPSTRADDR').value;
	var shipCity = document.getElementById('SHIPCITY').value;
	var shipState = document.getElementById('SHIPSTATE').value;
	var shipZip = document.getElementById('SHIPZIP').value;
	var shipPhon = document.getElementById('SHIPPHONE').value;

	if ((!CheckRequiredValue(cardNumber, "labelCCNumTxt")) || (!CheckCreditCard(cardNumber, cardType , "labelCCNumTxt")))
	{
		bResult = false;
    }

	if (!CheckRequiredValue(cardFName, "labelCCFNameTxt"))
	{
		bResult = false;
	}

	if (!CheckRequiredValue(cardLName, "labelCCLNameTxt"))
	{
		bResult = false;
	}

	if (!CheckRequiredValue(billStreet, "labelStreetText"))
	{
		bResult = false;
	}

	if (!CheckRequiredValue(billCity, "labelCityText"))
	{
		bResult = false;
	}

	if (!CheckRequiredValueInSelect(billState, "labelStateText"))
	{
		bResult = false;
	}

	if (!CheckRequiredValue(billZip, "labelZipText"))
	{
		bResult = false;
	}

	if ((!CheckRequiredValue(billPhon, "labelPhoneText")) || (!CheckPhone(billPhon, "labelPhoneText")))
	{
		bResult = false;
	}

	if (!CheckRequiredValue(shipStreet, "labelShipStreetText"))
	{
		bResult = false;
	}

	if (!CheckRequiredValue(shipCity, "labelShipCityText"))
	{
		bResult = false;
	}

	if (!CheckRequiredValueInSelect(shipState, "labelShipStateText"))
	{
		bResult = false;
	}

	if (!CheckRequiredValue(shipZip, "labelShipZipText"))
	{
		bResult = false;
	}

	if ((!CheckRequiredValue(shipPhon, "labelShipPhoneText")) || (!CheckPhone(shipPhon, "labelShipPhoneText")))
	{
		bResult = false;
	}

	if (!CheckExpirationDate(cardExpMonth, cardExpYear, "labelCCExpTxt"))
	{
		bResult = false;
	}

	var el = document.getElementById("ValidationMsg");
	var red = "#CC0000";
	ChangeColor("ValidationMsg", red);
	if(bResult)
		el.style.visibility = 'hidden';
	else
		el.style.visibility = 'visible';

	return bResult;
}

// Used in submit of user preferences
function doSubmitWithFormCheck(form, mode)
{
	if (form == "frmChangeBillingInfo")
	{
		if (CheckBillingInfo() == false)
		{
			return false;
		}
	}

	document.forms[form].MODE.value = mode;
//	document.forms[form].submit();
   return true;
}
// END Submit of user preferences from my auction preferences page

// Used from SYI page
function EnableChargeTax(cmb, edt, state)
{
	var cmbState = document.getElementById(cmb);
	var edtTax = document.getElementById(edt);

	if (state)
	{
		edtTax.disabled = false;
		cmbState.disabled = false;
	}
	else
	{
		edtTax.disabled = true;
		cmbState.disabled = true;
	}
}

// Used in doCheckSaveSubmit below
function checkOneAndWarn(elbl, elname, lblname, size, fname) {
  var result = true ;
  var el  = document.getElementById(elname) ;
  var lbl = document.getElementById(lblname) ;
  if (el.value.length > size) {
    result = false ;
    elbl.innerHTML += ('Field <i>"' + fname + '"</i>: ' + size + ' characters max, enetered ' + el.value.length + '<br>') ;
    lbl.style.color = '#CC0000' ;
  } else {
    lbl.style.color = '#335c8d' ;
  }
  return result ;
}

// Used by my home edit page
function doCheckSaveSubmit(form, mode) {
  var bOK = true ;
  var tOK = true ;
  var elbl = document.getElementById('lblError') ;
  elbl.innerHTML = "The information you've entered exceeded maximum length for following fields:<br>" ;

  tOK = checkOneAndWarn(elbl, 'USLYSELL', 'lbUsuallySell',     50, 'Things I usually sell') ;
  bOK = bOK && tOK ;
  tOK = checkOneAndWarn(elbl, 'LIKEBUY',  'lblLikeToBuy',      50, 'Things I like to buy') ;
  bOK = bOK && tOK ;
  tOK = checkOneAndWarn(elbl, 'LOOKFOR',  'lblLookingFor',     50, 'Things I am looking for') ;
  bOK = bOK && tOK ;
  tOK = checkOneAndWarn(elbl, 'OTHERINT', 'lblOtherInterests', 50, 'Other Interests') ;
  bOK = bOK && tOK ;

  tOK = checkOneAndWarn(elbl, 'SHIPPINGPOL', 'lblSHIPPINGPOL', 250, 'My shipping policy') ;
  bOK = bOK && tOK ;
  tOK = checkOneAndWarn(elbl, 'PAYMENTPOL',  'lblPAYMENTPOL', 250, 'My payment policy') ;
  bOK = bOK && tOK ;
  tOK = checkOneAndWarn(elbl, 'RETURNPOL',  'lblRETURNPOL', 250, 'My return policy') ;
  bOK = bOK && tOK ;

  if (bOK == true) {
    doSave(form);
    document.forms[form].MODE.value = mode;
    document.forms[form].submit();
  } else {
    elbl.style.visibility = 'visible' ;
  }
}

// Used by my auction preferences page
function doCheckSubmit(form, mode) {
  var bOK = true ;
  var elbl = document.getElementById('lblError') ;
  elbl.innerHTML = "The information you've entered exceeded maximum length for following fields:<br>" ;

  bOK = checkOneAndWarn(elbl, 'edPayInstr', 'payminstr', 250, 'Payment Instructions') ;

  if (bOK == true) {
    document.forms[form].MODE.value = mode;
  } else {
    elbl.style.visibility = 'visible' ;
  }
  return bOK;
}

// Used in CheckInformations and checkMoney functions
function parseMoney(strValue)
{
	isMoneyFormatAmount = 0.00;
	isMoneyFormatString = "0.00";
	//at this moment we assuming that the application has to accept only USA format money format
	if( isMoneyFormat(strValue, 0) )
	{
  		return isMoneyFormatAmount;
	}
	//error
	else
	{
  		return -1.0;
	}
}

// Used in parseMoney function
function isMoneyFormat(str,eur) {
   isMoneyFormatAmount = 0.00;
   isMoneyFormatString = "0.00";
   if(!str) return true;
   str = "" + str; // force string
   for (var i=0; i<str.length;i++) {
      var ch = str.charAt(i);
      if (!isNum(ch) && ch!='.' && ch != ',' && ch !='-') return false
   }

   var sign = 1;
   var signChar = '';
   isMoneyFormatAmount = 0.00;
   isMoneyFormatString = "0.00";

   if (str.length > 1) {
      signChar = str.substring(0,1);
      if (signChar == '-' || signChar == '+' ) {
         if (signChar == '-') sign = -1;
         str = str.substring(1);
      }
      else signChar = '';
   }
   var decimalPoint = '.';
   var thDelim = ',';
   if (eur) {
      decimalPoint = ','
      thDelim = '.';
   }
   test1 = str.split(decimalPoint);
   if (test1.length == 2) { // Decimals found
      if (test1[1].length > 2) return false; // more than 2 decimals
      if (isNum(test1[1])) {
         if (test1[1] < 9 && test1[1].charAt(0) > 0) test1[1] = new String(test1[1]+"0");
      }
      else return false;
   }
   else if(test1.length > 2)
   { // Decimals points more then one
	return false;
   }
   else test1[1] = "00"; // force decimals

   if (test1[0] == '') test1[0] = 0;
   if (test1[0] && test1[0].indexOf(thDelim) != -1) {
      test2 = test1[0].split(thDelim);
      if (test2.length >= 2)
	  { // thousands found
         var thError = false;
         for (var i=0;i<test2.length;i++)
		 {
            if (test2[i].length != 3 && i != 0) { thError = true; break; } // all thousands exept the first.
			if (test2[i].length > 3 && i == 0) { thError = true; break; }  // the first thousands.
            if (!isNum(test2[i])) { thError = true; break; } // all numbers
         }
         if (thError) return false;
         test1[0] = test2.join('')
      }
   }
   isMoneyFormatAmount = (parseInt(test1[0]) + parseFloat('.'+test1[1]))*sign;
   isMoneyFormatString = new String(""+signChar+""+parseInt(test1[0])) +'.'+test1[1];
   return true;
}

// Used in isMoneyFormat function
function isNum(str) {
  if(!str) return false;
  for(var i=0; i<str.length; i++){
    var ch=str.charAt(i);
    if ("0123456789".indexOf(ch) ==-1) return false;
  }
  return true;
}

// Used by browse category page
function getCatID()
{

  var nameValues = document.location.search.substr(1).split("&");
  var nameValuesLen = nameValues.length;
  var catID = "";

  for(i=0; i<nameValuesLen; i++){
    if (nameValues[i].indexOf("CTG")!= -1){
      var paramSite = nameValues[i].split("=");
      catID = paramSite[1];
    }
  }
  return catID;

}

// Uses by my auction preferences page
function SetMode(form, mode)
{
  document.forms[form].MODE.value = mode;
  return true;
}
