var _offerNumberResponse;
var _offerNumberInstructions;

function getOfferNumberWebServiceUrl()
{
   return 'http://orlando.hotelscorp.com/webservices/offer';
}

function getOfferNumberLink(title, response, instructions)
{
   title = title != undefined ? title : "Get Offer Number";
   _offerNumberResponse = response != undefined ? response : "Your PAGE CODE Is: ";
   _offerNumberInstructions = instructions != undefined ? instructions : "";

   var output = '';
   output += '<div id="_offerNumberContent" class="offerNumberContent">';
   output +=   '<span id="_offerNumberRequest" class="offerNumberRequest">';
   output +=      '<a href="#" onclick="requestOfferNumber(); return false;">' + title + '</a>';
   output +=   '</span>';
   output += '</div>';
   
   window.document.write(output);
}

function getOfferNumberSearchBox()
{
   var output = '';
   output += '<div id="_offerNumberContent" class="offerNumberContent">';
   output +=   '<span id="_offerNumberSearchBox" class="offerNumberSearchBox">';
   output +=      '<form id="_offerNumberSearchForm" onsubmit="searchForOfferUrl(); return false;">';
   output +=         '<input id="_offerNumberSearchValue" type="text" />';
   output +=         '<input type="submit" />';
   output +=      '</form>';
   output +=   '</span>';
   output += '</div>';
   
   window.document.write(output);
}

function requestOfferNumber()
{
   var offerUrl = escape(window.location);
   var requestUrl = getOfferNumberWebServiceUrl() + "/request.cfm?offerUrl=" + offerUrl;
   
   var head = document.getElementsByTagName("head")[0];
   script = document.createElement('script');
   script.id = 'uploadScript';
   script.type = 'text/javascript';
   script.src = requestUrl;
   head.appendChild(script);
}

function searchForOfferUrl()
{
   var offerNumber = document.getElementById("_offerNumberSearchValue").value;
   offerNumber = normalizeOfferNumber(offerNumber);
   
   var requestUrl = getOfferNumberWebServiceUrl() + "/search.cfm?offerNumber=" + offerNumber;
   
   if(validOfferNumber(offerNumber))
   {
      var head = document.getElementsByTagName("head")[0];
      script = document.createElement('script');
      script.id = 'uploadScript';
      script.type = 'text/javascript';
      script.src = requestUrl;
      head.appendChild(script);
   }
   else
   {
      alert('The Offer Number you supplied is not valid');
   }
}

function validOfferNumber(offerNumber)
{
   validLength = offerNumber.length == 4;
   validCharacterSet = Number(offerNumber) != NaN;
      
   return validLength && validCharacterSet;
}

function normalizeOfferNumber(offerNumber)
{
   return offerNumber.replace('-', '');
}

function parseForValue(text)
{
   return text.split("\n")[0];
}

function getXMLHttpObject(){
   /*
      Series of try catchs to find the appropriate 
      xmlhttp object
   */
    try{
       return new ActiveXObject("Msxml2.XMLHTTP");    
    }catch(e){
       try{
          return new ActiveXObject("Microsoft.XMLHTTP");
       }catch(e){
          if(typeof XMLHttpRequest != 'undefined'){
             return new XMLHttpRequest();
          }
       }
    }
}