
if( !window.getObject ) {
  function getObject( obj ) {
    var type = typeof(obj);
	obj = ( type.toLowerCase() == "string" )? document.getElementById(obj) : obj;

	return obj;
  }
}

/**
 * Functions for Displaying/Closing Form(s)
 */

if( !window.topScrolled ) {
function topScrolled() {
  var y;
  if (self.pageYOffset) {// all except Explorer
	y = self.pageYOffset;
  }
  else if (document.documentElement && document.documentElement.scrollTop) {// Explorer 6 Strict
	y = document.documentElement.scrollTop;
  }
  else if (document.body) {// all other Explorers
	y = document.body.scrollTop;
  }

  return y;
}
};

if( !window.widthScrolled ) {
function widthScrolled() {
  var x;
  if (self.pageXOffset) // all except Explorer
	x = self.pageXOffset;
  else if (document.documentElement && document.documentElement.scrollLeft) // Explorer 6 Strict
	x = document.documentElement.scrollLeft;
  else if (document.body) // all other Explorers
	x = document.body.scrollLeft;

  return x;
}
};

var objAjax = new IAjax();
var gValidator = new FormValidator();
var objFM = new FocusMask();
objFM.setOpacity(50);
objFM.setLevel(110);

function closeTAF( id ) {
  
  obj = getObject(id);
  if( !obj )
    return;
  
  objFM.unmask();
  obj.style.visibility = "hidden";
  obj.style.display = "none";
}

var NewCaptchaImage = new Image();
function openTAF( id ) {
  obj = getObject(id);
  if( !obj )
    return;

  if( gwinPleaseWait ) openPleaseWait();

  otafform = getObject('frmTellAFriend');
  otaf_titlebar_text = getObject('taf_titlebar_text');
  otafform_container = getObject('tafform_container');
  otafresponse_container = getObject('tafresponse_container');
  otaf_confirm_container = getObject('taf_confirm_container');
  
  if( !otaf_titlebar_text || !otafform_container || !otafresponse_container || !otaf_confirm_container ) return;
  
  NewCaptchaImage = changeCaptchaImage('taf_captcha_image', '/applications/FormValidation/captcha/getCaptchaImage.php');
  
  if( !NewCaptchaImage ) return;

  /**
   * Attach the Remainder of Processing to the NewCaptchaImage's onload event,
   * so avoid image flicker when the form appears.
   */
  NewCaptchaImage.onload = function() {
    if( gwinPleaseWait ) closePleaseWait();
  if( !otafform )
    return;
  objFM.attachToBody();
  objFM.setLevel(110);
  
  otafform.captcha.value = '';
  otafform.style.display = "block";
  
  for( index = 0; index < otafform.elements.length; index++ ) {
	if( otafform.elements[index].style )
	  otafform.elements[index].style.backgroundColor = '';
	
	otafform.elements[index].title = '';
  }

  otaf_titlebar_text.innerHTML = "Tell a Friend about this page on Floormall";
  otaf_confirm_container.style.display = "none";
  otafresponse_container.style.display = "none";
  otafform_container.style.display = "block";

  objFM.setMaskColor("#9999cc");
  
  obj.style.display = "block";
  objFM.mask();
  
  obj.style.top = ((getViewportHeight() - obj.offsetHeight) / 2) + topScrolled() - 25 + "px";  
  obj.style.left = ((getViewportWidth() - obj.offsetWidth) / 2) + widthScrolled() + "px";
  obj.style.visibility = "visible";
  }
  
}

function showConfirmation( formId, formTitleTextObjId, confirmContainerId, formContainerId, responseContainerId ) {
  form = getObject(formId);
  formTitleTextObj = getObject(formTitleTextObjId);
  confirmContainer = getObject(confirmContainerId);
  formContainer = getObject(formContainerId);
  responseContainer = getObject(responseContainerId);
  
  if( !form || !formTitleTextObj || !confirmContainer || !formContainer || !responseContainer ) return false;
  
  var titleText = "Is the Following Correct?";
  formTitleTextObj.innerHTML = titleText;

  var confirmStr = '';

  var btnEdit = '<input type="button" value="&lt;&lt; No (Edit)" style="font-weight: bold;" onclick="openTAF('+formId+');" />';  
  var btnConfirm = '<input type="button" value="Yes (Send Email) &gt;&gt;" style="font-weight: bold;" onclick="submitTAF('+formId+');" />';
  
  confirmStr += '<table class="taf_tbl_confirm">' + "\n";
  confirmStr += '<tr><td colspan="2"><h3 style="margin-top: 0px; font-size: 11px;">Please Confirm that the Following is Correct</h3></td></tr>' + "\n";
  confirmStr += '<tr><td class="taf_tbl_confirm_fname">Your Name: <span style="color: #999999;">(Optional)</span></td><td class="taf_tbl_confirm_value"><div style="width: 125px; white-space: nowrap; overflow: hidden;" title="'+form.sender_name.value+'">'+( (form.sender_name.value.trim() == "")? '<span style="color: #777777;">[blank]</span>' : '<b>'+form.sender_name.value+'</b>' )+'</div></td></tr>'+"\n";
  confirmStr += '<tr><td class="taf_tbl_confirm_fname">Your Email: <span style="color: #999999;">(Optional)</span></td><td class="taf_tbl_confirm_value"><div style="width: 125px; white-space: nowrap; overflow: hidden;" title="'+form.sender_email.value+'">'+( (form.sender_email.value.trim() == "")? '<span style="color: #777777;">[blank]</span>' : '<b>'+form.sender_email.value+'</b>' )+'</div></td></tr>'+"\n";
  confirmStr += '<tr><td class="taf_tbl_confirm_fname">Your Friend\'s Name: <span style="color: #999999;">(Optional)</span></td><td class="taf_tbl_confirm_value"><div style="width: 125px; white-space: nowrap; overflow: hidden;" title="'+form.friend_name.value+'">'+( (form.friend_name.value.trim() == "")? '<span style="color: #777777;">[blank]</span>' : '<b>'+form.friend_name.value+'</b>' )+'</div></td></tr>'+"\n";
  confirmStr += '<tr><td class="taf_tbl_confirm_fname">Your Friend\'s Email: <span style="color: #880000;">(Required)</span></td><td class="taf_tbl_confirm_value"><div style="width: 125px; white-space: nowrap; overflow: hidden;" title="'+form.friend_email.value+'"><b>'+form.friend_email.value+'</b></div></td></tr>'+"\n";
  confirmStr += '<tr><td class="taf_tbl_confirm_fname">Comments/Message: <span style="color: #999999; margin-right: 5px;">(Optional)</span></td><td class="taf_tbl_confirm_value"><div style="width: 125px; white-space: nowrap; overflow: hidden;" title="'+form.message.value+'">'+( (form.message.value.trim() == "")? '<span style="color: #777777;">[blank]</span>' : '<b>'+form.message.value.substr(0, 35)+'...</b>' )+'</div></td></tr>'+"\n";
  confirmStr += '<tr><td class="taf_tbl_confirm_fname">Access Code: <span style="color: #880000;">(Required)</span></td><td class="taf_tbl_confirm_value"><div style="width: 125px; white-space: nowrap; overflow: hidden;" title="'+form.captcha.value+'"><b style="font-size: 14px; line-height: 18px; font-family: Tahoma, serif;">' + form.captcha.value +'</b>' + '</div></td></tr>'+"\n";
  confirmStr += '</table>' + "\n";
  confirmStr += '<div style="text-align: center; margin-top: 10px;">' + btnEdit + ' ' + btnConfirm + '</div>' + "\n";

  confirmContainer.innerHTML = confirmStr;
  
  formContainer.style.display = "none";
  responseContainer.style.display = "none";
  confirmContainer.style.display = "block";
}

function processTAF( form ) {
  form = getObject(form);
  
  if( !form ) return false;
  
  bValidated = validateTAF(form);
  if( !bValidated ) return false;  
  
  showConfirmation( form.id, 'taf_titlebar_text', 'taf_confirm_container', 'tafform_container', 'tafresponse_container' );
  
//  submitTAF(form);
}

function submitTAF( form ) {
  form = getObject(form);
  
  if( !form ) return false;
  
  url = "/applications/ajax/processTellAFriend.php";
  
  /* Close Any Open Ajax Connections */
  objAjax.abort();
  
  /* Assign Callback Functions for Ajax Events */
  objAjax.assignCallback( loadingTAF, "onLoading" );
  objAjax.assignCallback( loadedTAF, "onLoaded" );
  objAjax.assignCallback( interactiveTAF, "onInteractive" );
  objAjax.assignCallback( completeTAF, "onComplete" );
  objAjax.assignCallback( notReceivedTAF, "onResponseUnsuccessful" );
  
  objAjax.open( "post", url, true );

  qstring = getTAFVars(form);
  
  objAjax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  objAjax.send(qstring);
  
}

function loadingTAF() {

if( gwinPleaseWait ) openPleaseWait();

}

function loadedTAF() {

if( gwinPleaseWait ) openPleaseWait();

}

function interactiveTAF() {

if( gwinPleaseWait ) openPleaseWait();

}

function completeTAF() {
  if( gwinPleaseWait ) closePleaseWait();

  otaf = getObject('taf');
  otaf_titlebar_text = getObject('taf_titlebar_text');
  otafform_container = getObject('tafform_container');
  otafresponse_container = getObject('tafresponse_container');
  otaf_confirm_container = getObject('taf_confirm_container');

  if( !otaf_titlebar_text || !otafresponse_container || !otafform_container || !otaf_confirm_container )
    if( !otaf ) return
	else closeTAF(otaf);

  responseText = this.responseText;
  
  bFormError = ( responseText.toLowerCase().indexOf('formerror:') < 0 )? false : true;
  bMailError = ( responseText.toLowerCase().indexOf('mailerror:') < 0 )? false : true;
  
  if( bFormError ) {
    otaf_titlebar_text.innerHTML = 'Errors were Present in the Form Data';
	otafform_container.innerHTML = this.responseText;
    otafform_container.style.display = "block";
    otaf_confirm_container.style.display = "none";
    otafresponse_container.style.display = "none";
  }
  
  if( bMailError ) {
    otaf_titlebar_text.innerHTML = 'A Mailing Error Has Occurred';
    otafresponse_container.innerHTML = this.responseText;
    otafform_container.style.display = "none";
    otaf_confirm_container.style.display = "none";
    otafresponse_container.style.display = "block";
  }

  if( !bFormError && !bMailError ) {
    otaf_titlebar_text.innerHTML = 'Email(s) Sent Successfully!';
    otafresponse_container.innerHTML = this.responseText;
    otafform_container.style.display = "none";
    otaf_confirm_container.style.display = "none";
    otafresponse_container.style.display = "block";
  }

  
  objAjax.abort();
}
function notReceivedTAF() {  }

function getTAFVars( form ) {
  form = getObject(form);
  if( !form ) return false;
  
  var arr = new Array();
  var strReturn = '';
  arr.push("href="+form.href.value);
  arr.push("sender_name="+form.sender_name.value);
  arr.push("sender_email="+form.sender_email.value);
  arr.push("friend_name="+form.friend_name.value);
  arr.push("friend_email="+form.friend_email.value);
  arr.push("message="+form.message.value);
  arr.push("captcha="+form.captcha.value);
  strReturn = arr.join("&");
  
  return strReturn;
}

function changeCaptchaImage( imgId, src ) {
  var oldImg = getObject(imgId);

  if( !oldImg ) return false;

  oldImg.src = objAjax.rewriteUrl(src);
  
  //oldImageParent.replaceChild( img, oldImg );
  
  return oldImg;
  
}

function validateTAF( form ) {
  form = getObject(form);
  
  if( !form ) return false;
  
  //sender_name
  if( !gValidator.isValidString( form.sender_name.value, false ) ) {
    alert( "Your Name " + gValidator.parseErrors().upperCaseWords() );
	form.sender_name.focus();
	gValidator.errors.empty();
    return false;
  }
  
  //sender_email  
  if( !gValidator.isValidString( form.sender_email.value, false ) ) {
    alert( "Your Email " + gValidator.parseErrors().upperCaseWords() );
	form.sender_email.focus();
	gValidator.errors.empty();
    return false;
  }
  
  if( !gValidator.isValidEmail( form.sender_email.value, false ) ) {
    alert( "Your Email " + gValidator.parseErrors().upperCaseWords() );
	form.sender_email.focus();
	gValidator.errors.empty();
    return false;
  }
  
  //friend_name
  if( !gValidator.isValidString( form.friend_name.value, false ) ) {
    alert( "Your Friend's Name " + gValidator.parseErrors().upperCaseWords() );
	form.friend_name.focus();
	gValidator.errors.empty();
    return false;
  }
  
  //friend_email  
  if( !gValidator.isValidString( form.friend_email.value, true ) ) {
    alert( "Your Friend's Email " + gValidator.parseErrors().upperCaseWords() );
	form.friend_email.focus();
	gValidator.errors.empty();
    return false;
  }
  
  if( !gValidator.isValidEmail( form.friend_email.value, true ) ) {
    alert( "Your Friend's Email " + gValidator.parseErrors().upperCaseWords() );
	form.friend_email.focus();
	gValidator.errors.empty();
    return false;
  }
  
  //message
  if( !gValidator.isValidString( form.message.value, false ) ) {
    alert( "Comments/Message " + gValidator.parseErrors().upperCaseWords() );
	form.message.focus();
	gValidator.errors.empty();
    return false;
  }
  
  //captcha  
  if( !gValidator.isValidString( form.captcha.value, true ) ) {
    alert( "Access Code " + gValidator.parseErrors().upperCaseWords() );
	form.captcha.focus();
	gValidator.errors.empty();
    return false;
  }
  
  /* If Processing has gotten this far, then the form has passed validation */
  return true;  
}

function processKeyPress(form, e) {
  if( isEnterKeyPressed(e) )
    submitted = processTAF(form);

  return submitted;
}

function isEnterKeyPressed(e) {
  ascii = getKeyAscii(e);
  if( ascii == 13 ) return true;
  
  return false;
}

function getKeyAscii(e) {
  var keynum;

  if(window.event) /* IE */ {
    keynum = e.keyCode
  }
  else if(e.which) /* Netscape/Firefox/Opera */ {
    keynum = e.which
  }
  
  return keynum
}
/**
 * Place-A-Bid Application
 */


if( !window.getObject ) {
  function getObject( obj ) {
    var type = typeof(obj);
	obj = ( type.toLowerCase() == "string" )? document.getElementById(obj) : obj;

	return obj;
  }
}

/**
 * Functions for Displaying/Closing Form(s)
 */

if( !window.topScrolled ) {
function topScrolled() {
  var y;
  if (self.pageYOffset) {// all except Explorer
	y = self.pageYOffset;
  }
  else if (document.documentElement && document.documentElement.scrollTop) {// Explorer 6 Strict
	y = document.documentElement.scrollTop;
  }
  else if (document.body) {// all other Explorers
	y = document.body.scrollTop;
  }

  return y;
}
};

if( !window.widthScrolled ) {
function widthScrolled() {
  var x;
  if (self.pageXOffset) // all except Explorer
	x = self.pageXOffset;
  else if (document.documentElement && document.documentElement.scrollLeft) // Explorer 6 Strict
	x = document.documentElement.scrollLeft;
  else if (document.body) // all other Explorers
	x = document.body.scrollLeft;

  return x;
}
};


/* Application Constants */
var CONST_PAB_APPLICATION_WINDOW_ID = "pab_root";
var CONST_PAB_TITLEBAR_TEXT_CONTAINER_ID = "pab_titlebar_text_msg";
var CONST_PAB_CLIENTAREA_CONTAINER_ID = "pab_clientarea";
var CONST_PAB_FORM_CONTAINER_ID = "pab_form_container";
var CONST_PAB_FORM_ADDBID_ID = "pab_frmAddBid";
var CONST_PAB_FORM_UPDATEBID_ID = "pab_frmUpdateBid";
var CONST_PAB_FORM_REMOVEBID_ID = "pab_frmRemoveBid";
var CONST_PAB_CONFIRMATION_ID = "pab_confirmation_container";
var CONST_PAB_SERVER_RESPONSE_ID = "pab_server_response_container";
var CONST_PAB_PRODUCT_IMAGE_CONTAINER_ID = "pab_product_image_container";
var CONST_PAB_PRODUCT_IMAGE_ID = "pab_product_image";
var CONST_PAB_CAPTCHA_IMAGE_ID = "pab_captcha_image";
var CONST_PAB_LIST_PRICE_TEXT_ID = "pad_list_price_text";

var CONST_PAB_AJAX_PROCESSOR_URI = "/applications/ajax/processPlaceABid.php";
var CONST_PAB_AJAX_PAB_WINDOW_RETRIEVER_URI = "/applications/ajax/retrievePlaceABidWindow.php";
var CONST_PAB_AJAX_FORM_RETRIEVER_URI = "";

/* Application Objects */
var objPabWindow = null;
var objTitlebarTextMsg = null;
var objPabClientArea = null;
var objPabFormContainer = null;
var objPabForm_AddBid = null;
var objPabForm_UpdateBid = null;
var objPabForm_RemoveBid = null;
var objPabConfirmation = null;
var objPabServerResponse = null;
var objPabProductImageContainer = null;
var objPabProductImage = null; //IMG
var objPabCaptchaImage = null;
var objCaptchaImage = new Image();
var objPabListPrice = null;

var gStrPabClientAreaStartupContent = "";
var gStrImagePath = "";
var gStrListPrice = "";

/* System Objects */
if( !objFormValidator ) var objFormValidator = new FormValidator();
if( !objPabAjax) var objPabAjax = new IAjax();
if( !objFocusMask ) var objFocusMask = new FocusMask();
objFocusMask.setOpacity(65);
objFocusMask.setMaskColor("#000000");

/* Application Methods */
function initializeApplicationObjects() {
  objPabWindow = null;
  objTitlebarTextMsg = null;
  objPabClientArea = null;
  objPabFormContainer = null;
  objPabForm_AddBid = null;
  objPabForm_UpdateBid = null;
  objPabForm_RemoveBid = null;
  objPabConfirmation = null;
  objPabServerResponse = null;
  objPabProductImageContainer = null;
  objPabProductImage = null; //IMG
  objPabListPrice = null;

  gStrImagePath = "";
  gStrListPrice = "";
}

function pabAppWindow( winObject, fstrImagePath, fvarListPrice, fstrProductUrl, fStrProductName ) {
  if( objPabWindow == null || objPabWindow != getObject(winObject) ) {
	strProductUnits = "";
	if( arguments.length > 5 ) {
		switch( arguments.length) {
		  case 6: strProductUnits = arguments[5]; break;
		  default: break;	
		}
	}
    if( gwinPleaseWait ) openPleaseWait();
    bSuccess = _retrieveWindow( winObject, fstrImagePath, fvarListPrice, fstrProductUrl, fStrProductName, strProductUnits );

	return;
  }

  if( gwinPleaseWait ) openPleaseWait();

  openPabWindow();

  return;
}

function openPabWindow() {
  try {
    if( objPabWindow == null ) {
      return false;
    }
    
    if( gwinPleaseWait ) openPleaseWait();

    /* Initialize the Target Form */
    var strTargetFormType = ( arguments.length == 1 )? arguments[0] : ""; //Optional form type argument

    if( !objPabFormContainer.cancelInitialize )
    switch( strTargetFormType ) {
      case "addbid": initializePabForm_addBid(); break;
	  case "updatebid": break;
	  case "removebid": break;
	  default: initializePabForm_addBid(); break;
    }
  
    /* Re-attach the FocusMask to the Document */
    objFocusMask.attachToBody();
  
    objPabWindow.prevZIndex = objPabWindow.style.zIndex;
    objPabWindow.style.zIndex = 105;

    /* Rewrite Image SRC to side-step Caching Issues */
    src = objPabAjax.rewriteUrl("/applications/FormValidation/captcha/getCaptchaImage.php");

    objCaptchaImage = new Image();

    objCaptchaImage.src = src;
    objCaptchaImage.onload = function() {
	  objPabCaptchaImage.src = objCaptchaImage.src;
      objFocusMask.setLevel(100);
	  
	  pabSetActivePane( CONST_PAB_FORM_CONTAINER_ID );
	  
      objPabWindow.style.display = "block";
	  
	  objPabWindow.style.top = topScrolled() + "px";
	  
	  left = Math.max( 0, ( getViewportWidth() - (objPabWindow.offsetWidth+12) ) )/2;
	  
	  objPabWindow.style.left = left + "px";
	  
      if( gwinPleaseWait ) closePleaseWait();

      objFocusMask.mask();  
      objPabWindow.style.visibility = "visible";
	  
	  __window_resize = window.onresize;
  
      window.onresize = function() {
        objPabWindow.style.top = topScrolled() + "px";
		left = Math.max( 0, ( getViewportWidth() - (objPabWindow.offsetWidth+12) ) )/2;
	    objPabWindow.style.left = left + "px";

	    if( __window_resize ) __window_resize();
      }
	  
	  objPabFormContainer.cancelInitialize = false;
    }
  
  } catch(e) {
    alert('The following error occurred in "openPabWindow":' + "\n\n" + e.message);
	return false;
  }
}

function closePabWindow() {
  if( objPabWindow == null ) {
    return false;
  }
  
  objPabWindow.style.display = "none";
  objPabWindow.style.visibility = "hidden";
  objFocusMask.unmask();
}

/* Application Window Pane Control Methods */
function pabSetActivePane( pabPaneObj ) {
try {
  var targetPane = getObject(pabPaneObj);

  objPabWindow.activePane = targetPane;
  
  for( index=0; index < objPabWindow.panesCollection.length; index++ ) {
    if( objPabWindow.panesCollection[index] != objPabWindow.activePane.getAttribute("id") ) {
	  getObject(objPabWindow.panesCollection[index]).style.display = "none";
	}
  }
  
  objPabWindow.activePane.style.display = "block";
  
  return true;
} catch(e) {
  alert('The following error occurred in "pabSetActivePane":' + e.message);
  return false;
}  
};

/* Placeabid Form Handling */
function initializePabForm_addBid() {

  if( !objPabForm_AddBid || objPabForm_AddBid == null )
    return false;

  /* Elements That should be preset to [blank] */
  if( !objPabForm_AddBid.interactiveElements )
    objPabForm_AddBid.interactiveElements = {
	  bid_price: {value:"", label:"Your Bid"},
	  bidder_name: {value:"", label:"Your Name"},
	  bidder_email: {value:"", label:"Your Email"},
	  bidder_phone: {value:"", label:"Your Phone"},
	  captcha: {value:"", label:"Access Code"}
	};
  
  if( !objPabForm_AddBid.validator )
    objPabForm_AddBid.validator = _validate_AddBid;
  
  var strCurrentElementName = "";
  for( index=0; index < objPabForm_AddBid.elements.length; index++ ) {
    strCurrentElementName = objPabForm_AddBid.elements[index].name;
	if( objPabForm_AddBid.interactiveElements[strCurrentElementName] ) {
      objPabForm_AddBid.elements[index].value = objPabForm_AddBid.interactiveElements[strCurrentElementName].value;
	  objPabForm_AddBid.elements[index].style.backgroundColor = "";
	  objPabForm_AddBid.elements[index].setAttribute("title", "");
	}
  }
  
  return true;
};

function _validate_AddBid() {
  //bid_price
  if( !objFormValidator.isValidCurrency( objPabForm_AddBid.bid_price.value, true ) ) {
    alert( "Bid Price " + objFormValidator.parseErrors().upperCaseWords() );
	objPabForm_AddBid.bid_price.focus();
	objFormValidator.errors.empty();
    return false;
  }
  
  //bidder_name
  if( !objFormValidator.isValidString( objPabForm_AddBid.bidder_name.value, true ) ) {
    alert( "Your Name " + objFormValidator.parseErrors().upperCaseWords() );
	objPabForm_AddBid.bidder_name.focus();
	objFormValidator.errors.empty();
    return false;
  }
  
  //bidder_email
  if( !objFormValidator.isValidEmail( objPabForm_AddBid.bidder_email.value, true ) ) {
    alert( "Your Email " + objFormValidator.parseErrors().upperCaseWords() );
	objPabForm_AddBid.bidder_email.focus();
	objFormValidator.errors.empty();
    return false;
  }
  
  //bidder_phone
  if( !objFormValidator.isValidPhone( objPabForm_AddBid.bidder_phone.value, true ) ) {
    alert( "Your Phone " + objFormValidator.parseErrors().upperCaseWords() );
	objPabForm_AddBid.bidder_phone.focus();
	objFormValidator.errors.empty();
    return false;
  }
  
  //captcha
  c = objPabForm_AddBid.captcha.value.trim();

  if( c.length < 6 ) {
    alert( "Access Code Must be 6 Characters long" );
	objPabForm_AddBid.captcha.focus();
	objFormValidator.errors.empty();
    return false;
  }
  
  /* If processing has reached this point, then the form data is valid */
  return true;
}

function processPabForm( formObject ) {
  var objForm = getObject(formObject);
  
  var optValidator = arguments[1];
  if( optValidator && (objForm.validator == null || !objForm.validator) )
    objForm.validator = optValidator;
  
  var bIsValid = validatePabForm(objForm);
  
  if( !bIsValid ) return false;
  
  confirmPabForm( objForm );

  return false; //Always needed to make sure the Form Stays put.
}

/* Generalized Pass-thru Validation Instantiator Method */
function validatePabForm( formObject ) {
  try {
    var objForm = getObject(formObject);
	
    if( objForm.validator == null ) {
      errObj = {message: "\n------------\nThe Form Cannot be Processed at this time.\n\nPlease try again later.\n\nWe aplogize for the inconvenience.\n------------\n" };
	  throw errObj;
	}

    objPabFormContainer.activeForm = objForm;
	
	bIsValid = objForm.validator();
	
	return bIsValid;
	
  } catch(e) {
    alert("The following Error has occurred:\n" + e.message + "\n\nThe Place a Bid Window will now close.");
	closePabWindow();
	return false;
  }
}

function confirmPabForm( formObject ) {
  /* Application Proceeds to this point once the form passes validation */
  var objForm = getObject(formObject);
  var html = "";
  
  html += '<span style="font-weight: bold; color: #3F3427; font-family: Tahoma, sans-serif;">Is this Information Correct?</span>' + "\n";
  html += '<div style="padding: 8px;">' + "\n";
  for( prop in objForm.interactiveElements ) {
	confirmValue = ( objForm[prop].value.trim() == "" )? '<span style="color: #DFD2C3; font-weight: bold;">[blank]</span>' : objForm[prop].value;
    html += '<b>' + objForm.interactiveElements[prop].label + ':</b> ' + confirmValue + '<br />' + "\n";
  }
  html += '</div>' + "\n";
  
  html += '<div style="text-align: right; margin: 10px;">' + "\n";
  html += '<input type="button" class="btnpabConfirmInfo" onclick="openPabWindow();" value="&laquo; No, Edit My Bid" style="float: left;" />' + "\n";
  html += '<input type="button" class="btnpabConfirmInfo" onclick="submitPabForm(\'' + objForm.getAttribute("id") + '\');" value="Yes, Submit My Bid! &raquo;" />' + "\n";
  html += '</div>' + "\n";
  
  objPabConfirmation.innerHTML = html;
  
  objPabFormContainer.cancelInitialize = true;
  pabSetActivePane( CONST_PAB_CONFIRMATION_ID );
  
}

function submitPabForm( formObject ) {
  /* Application Proceeds to this point once the form data has been confirmed */
  var objForm = getObject(formObject);
  if( !objForm ) return false;
  
  objPabFormContainer.cancelInitialize = false;

  var formData = compilePabVars(objForm);
  
  objPabAjax.abort();
  url = objPabAjax.rewriteUrl(CONST_PAB_AJAX_PROCESSOR_URI);
  
  if( gwinPleaseWait ) openPleaseWait();

  objPabAjax.open( "post", url, true );
  
  objPabAjax.assignCallback( pabFormAjax_ResponseError, "onResponseUnsuccessful" );
  objPabAjax.assignCallback( pabFormAjax_Complete, "onComplete" );

  objPabAjax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  objPabAjax.send(formData);  
}

/* Placeabid Form Handling Utility Methods */
function compilePabVars( formObject ) {
  try {
    var objForm = getObject(formObject);
	var strCurrentElementName = "";
	var strCurrentElementValue = "";
	var arCompiledQueryString = new Array();
	var intCompiledQueryString_len = 0;
	
    if( !objForm ) throw "Invalid Form Element Reference";	
	
	for( index = 0; index < objForm.elements.length; index++ ) {
      strCurrentElementName = objForm.elements[index].name;
	  strCurrentElementValue = objForm.elements[index].value;
	  intCompiledQueryString_len = arCompiledQueryString.length;
	  arCompiledQueryString[intCompiledQueryString_len] = strCurrentElementName + "=" + strCurrentElementValue;
	}
	
	return arCompiledQueryString.join("&");
	
  } catch(e) {
    alert('The following error occurred in "compilePabVars":' + "\n\n" + e.message);
	return false;
  }
};

function formatPrice( obj ) {
  var field = getObject(obj);
  
  val = field.value.trim();
  parts = val.split(".");

  i = parts[0] + "." + ( ( parts.length == 2 )? ( (parts[1] == "")? "00" : parts[1] ) : "00" );
  
  
  field.value = i;  
}

/* Placeabid Ajax Submission Handling */
function pabFormAjax_Uninitialized() {}
function pabFormAjax_Loading() {}
function pabFormAjax_Loaded() {}
function pabFormAjax_Interactive() {}

function pabFormAjax_Complete() {
  var responseText =  this.responseText;
  var activePaneId = "";

  if( responseText.indexOf( "ERROR: Form Error(s)" ) > -1 ) {
    activePaneId = CONST_PAB_FORM_CONTAINER_ID;	
	
	var buffer = document.createElement("DIV");
	buffer.style.display = "none";
	buffer.style.visibility = "hidden";
	document.body.appendChild(buffer);
	
	buffer.innerHTML = responseText;
	
	bufferForm = null;
	for( index = 0; index < buffer.childNodes.length; index++ ) {
	  if( buffer.childNodes[index].nodeName == "FORM" )
	    bufferForm = buffer.childNodes[index];
	}
	
	objPabFormContainer.activeForm.captcha.value = "";
	
	for( index = 0; index < bufferForm.elements.length; index++ ) {
	  currentName = bufferForm.elements[index].name;
	  
	  if( currentName != "captcha" )
        objPabFormContainer.activeForm[currentName].value = bufferForm.elements[index].value;
	  
	  objPabFormContainer.activeForm[currentName].setAttribute("title", bufferForm.elements[index].getAttribute("title") );
	  objPabFormContainer.activeForm[currentName].style.backgroundColor = bufferForm.elements[index].style.backgroundColor;
	}
	
	document.body.removeChild(buffer);
	
	objPabFormContainer.cancelInitialize = true;
	openPabWindow();
  }
  else {
	activePaneId = CONST_PAB_SERVER_RESPONSE_ID;
	objPabServerResponse.innerHTML = responseText;
	pabSetActivePane( activePaneId );

    if( gwinPleaseWait ) closePleaseWait();
  }  
}

function pabFormAjax_ResponseError() {}

/* Preliminary Ajax Action Methods */
function _retrieveWindow( fwinObject, strProductImagePath, varListPrice, strProductUrl, strProductName ) {
  objPabAjax.abort(); //Close Any ctive Connections

  //Validate Parameters
  if( strProductImagePath.replace( /\s+/, "" ) == "" ) {
    alert( "Image Path Specified Is Empty" );
	return false;
  }
  
  if( varListPrice.replace( /\s+/, "" ) == "" ) {
    alert( "List Price Specified Is Empty" );
	return false;
  }
  
  if( strProductUrl.replace( /\s+/, "" ) == "" ) {
    alert( "Product URL Specified Is Empty" );
	return false;
  }
  
  if( strProductName.replace( /\s+/, "" ) == "" ) {
    alert( "Product Name Specified Is Empty" );
	return false;
  }

  gStrImagePath = strProductImagePath;
  gStrListPrice = varListPrice;
  
  if( getObject( fwinObject ) ) {
    //HTML Element Already Exists, so assign accordingly
	objPabWindow = getObject( fwinObject );
	
	//Re-Assign Application Objects
    _assignApplicationObjects();
	
	return;
  }
  
  var qstrImagePath = "imagepath=" + strProductImagePath;
  var qstrListPrice = "listprice=" + varListPrice;
  var qstrProductUrl = "producturl=" + strProductUrl;
  var qstrProductName = "productname=" + strProductName;
  var qstrProductUnits = "productunits=" + arguments[5];
  var arQueryString = new Array( qstrImagePath, qstrListPrice, qstrProductUrl, qstrProductName, qstrProductUnits);
  var queryString = arQueryString.join("&");
  
  var qstring = '';
  qstring = 'imagepath='+gStrImagePath+'&listprice='+gStrListPrice+'&producturl='+strProductUrl;

  objPabAjax.assignCallback( _attachWindow, "onComplete" );
  objPabAjax.open( "get", CONST_PAB_AJAX_PAB_WINDOW_RETRIEVER_URI+"?"+queryString, true );
  objPabAjax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  objPabAjax.send();

}

function _attachWindow() {
  //First Off, Remove PAB Window is it exists
  if( objPabWindow != null ) {
    _detachWindow();
  }

  var HTML = this.responseText;

  var wrapper = document.createElement("DIV");

  wrapper.style.display = "none";
  wrapper.style.visibility = "hidden";

  wrapper.innerHTML = HTML;

  winHandle = wrapper.firstChild; //The PAB Window Object

  //var currentDocumentHTML = document.body.innerHTML;
  //var newDocumentHTML = HTML + "\n" + currentDocumentHTML;
  
  //Re-assign innerHTML for the Document
  //document.body.innerHTML = newDocumentHTML;

  document.body.appendChild(winHandle);
  
  //Re-Assign Application Objects
  _assignApplicationObjects();
  
  objPabAjax.abort();  //Close Any ctive Connections
}

function _detachWindow() {
    document.removeChild( objPabWindow );
	
	//Re-Initialize Application Objects
    initializeApplicationObjects();
}

function _assignApplicationObjects() {  
  try  {

    objPabWindow = getObject(CONST_PAB_APPLICATION_WINDOW_ID);
	
	objPabWindow.panesCollection = new Array( CONST_PAB_FORM_CONTAINER_ID, CONST_PAB_CONFIRMATION_ID, CONST_PAB_SERVER_RESPONSE_ID );
	
    objTitlebarTextMsg = getObject(CONST_PAB_TITLEBAR_TEXT_CONTAINER_ID);
    objPabClientArea = getObject(CONST_PAB_CLIENTAREA_CONTAINER_ID);	
	objPabFormContainer = getObject(CONST_PAB_FORM_CONTAINER_ID);
    objPabFormContainer.cancelInitialize = false;
	
    objPabForm_AddBid = getObject(CONST_PAB_FORM_ADDBID_ID);
	objPabForm_AddBid.validator = null;

    //objPabForm_UpdateBid = document.getElementById(CONST_PAB_APPLICATION_WINDOW_ID);
    //objPabForm_RemoveBid = document.getElementById(CONST_PAB_APPLICATION_WINDOW_ID);

    objPabConfirmation = getObject(CONST_PAB_CONFIRMATION_ID);
	objPabServerResponse = getObject(CONST_PAB_SERVER_RESPONSE_ID);
	
    objPabProductImageContainer = getObject(CONST_PAB_PRODUCT_IMAGE_CONTAINER_ID);
    objPabProductImage = getObject(CONST_PAB_PRODUCT_IMAGE_ID);
	objPabCaptchaImage = getObject(CONST_PAB_CAPTCHA_IMAGE_ID);
    objPabListPrice = getObject(CONST_PAB_LIST_PRICE_TEXT_ID);
	
	gStrPabClientAreaStartupContent = objPabClientArea.innerHTML;
  
    openPabWindow();
  } catch(e) {
    alert( 'The following error occured in "_assignApplicationObjects"' + "\n\n" + e.message );
    return false;
  }
}

eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[(function(e){return d[e]})];e=(function(){return'\\w+'});c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('2(!t.c){b c(r){5 f=Y(r);r=(f.11()=="2c")?1F.23(r):r;4 r}};b 1E(O,G){o=c(O);2(!o)4;j=c(G);2(!j)4;o.7.d="1I";j.1q=j.7.d;j.7.d="F"};b 27(G,O){j=c(G);2(!j)4;o=c(O);2(!o)4;j.7.d="F";o.7.d=o.1q};b 12(9){5 h=Y 9;2(h=="b"){5 P=9.D();2((/^\\/.*\\/$/).14(P)){4"15"}V 2((/^\\[E.*\\]$/i).14(P)){h="E"}};2(h!="E"){4 h};I(9){6 8:4"8";6 t:4"t";6 t.k:4"k"};2(t.k&&(k.f==9.f)){4"k"};5 N=9.1s;2(N!=8){I(N){6 n:h="17";U;6 1t:4"1u";6 1v:4"15";6 22:h="1w";U;6 1x:4"R";1y:5 16=N.D();5 u=16.19(/\\s*b (.*)\\(/);2(u!=8){4 u[1]}}};5 Q=9.1z;2(Q!=8){I(Q){6 1:2(9.1g==8){4"1B"};U;6 3:4"1C"}};2(9.D!=8){5 1c=9.D();5 u=1c.19(/^\\[E (.*)\\]$/i);2(u!=8){5 1a=u[1];I(1a.11()){6"k":4"k";6"1b":4"1b";6"R":4"R";6"1G":4"1J";6"1K":4"1M";6"1N":4"t";6"1O":6"1P":6"1Q":4"1h"}}};2(9.1R&&9.1T){4"1U"}V 2(9.1V!=8){4"l"}V 2(9.1g!=8){4"1h"};4 h};5 w=8;5 Z=8;5 H=8;b 1n(1i){W{2(w==8||w==1i)4;w.7.d="F";H.7.B="";H.7.1p="";Z.7.1r="";w=8}X(e){}};b 1Y(1k,1l,1m){W{L=c(1k);M=c(1l);13=c(1m);1n(L);M.7.B="#20";M.7.1p="21(/24/26/28.2a)";13.7.1r="10";L.7.d="1f";H=M;Z=13;w=L}X(e){}};5 x=1j n();5 A=8;2(!n.J.T)n.J.T=b(){5 m=y.18();2(m==1e)m=-1;C(5 i=0;i<l.z;i++)y[++m]=l[i]};2(!n.J.S)n.J.S=b(){5 m=y.18();5 v;2(m!=1e){v=y[m];1D y[m]};4 v};b 1d(){2(A)A.7.B="#1L";C(g=x.z-1;g>=0;g--){x[g].7.d=\'F\';x.S()};A=8};5 1o="#1S";b 1W(){W{5 K;5 q;5 f;5 p=1j n();2(!12)1Z"Y 25 29 2b";C(a=0;a<l.z;a++){f=12(l[a]);f=f.11();2(f=="17"){K=c(l[a][0]);q=c(l[a][1]);2(K){1d();p.T(K)}}};2(q){q.1X=q.7.B;q.7.B=1o;A=q};2(p.z>0){C(g=0;g<p.z;g++){p[g].7.d="1f";p[g].7.1A="1H%"};x=p}}X(e){}};',62,137,'||if||return|var|case|style|null|vExpression||function|getObject|display||type|index|sTypeOf||oHide|event|arguments||Array|oExpand|subpaneCollection|subtabObj|obj||window|aMatch||activePane|activeSubPanes|this|length|activeSubTab|color|for|toString|object|none|idHide|activepaneRollover|switch|prototype|subpaneObj|newPane|newpaneRollover|fConstructor|idExpand|sFunction|nNodeType|error|pop|push|break|else|try|catch|typeof|activepaneRolloverParent||toLowerCase|dltypeof|newpaneRolloverParent|test|regexp|sConstructor|array|highestIndex|match|sMatch|math|sExpression|resetActiveSubPanes|undefined|block|item|domcollection|paneObj|new|objORid|rollover|rolloverparent|resetActivePane|ACTIVE_SUBPANE_COLOR|backgroundImage|displayState|zIndex|constructor|Date|date|RegExp|jsobject|ReferenceError|default|nodeType|width|domelement|textnode|delete|expand|document|mimetypearray|100|inline|mimetypecollection|pluginarray|ffffff|plugincollection|windowcollection|nodelist|htmlcollection|elementarray|moveToBookmark|883333|moveToElementText|textrange|callee|displaySubPane|prevColor|displayPane|throw|FFFFFF|url|Object|getElementById|images|Extension|_tabs|collapse|tabdwn|not|gif|Loaded|string'.split('|'),0,{}))

