var runsAjax = true;
function getXmlHttpRequestObject() {
    if (window.XMLHttpRequest) {
        return new XMLHttpRequest;
    } else if (window.ActiveXObject) {
        return new ActiveXObject("Microsoft.XMLHTTP");
    } else {
        self.runsAjax = false;
        alert("Your browser doesn't support the XmlHttpRequest object.  Better upgrade to Firefox.");
    }
}
var NULL;
getXmlHttpRequestObject();


String.prototype.trim = function()
{return( this.replace(/^\s*([\s\S]*\S+)\s*$|^\s*$/,'$1') );}

var arrRequest = new Array();
var togglePortfolioItem = function (item) {
   if (!runsAjax) {
      // since this is post (not a get), i should do form submittion here.
      return false;
   }
   
   if (typeof item == 'undefined') return false;
   var getvars = '?itemID='+item;
   var url = "/js/ajax/togglePortfolioItem.cfm" + getvars;
   var seed = Math.random();
   arrRequest["req" + seed] = getXmlHttpRequestObject();
   var request = arrRequest["req" + seed];
   request.onreadystatechange = (function (seed) {return function () {
      processRequest(seed);
   };})(seed);

   request.open('GET', url, true);
   request.send('');
   return true;
}


var processRequest = function(seed) {
   var request = arrRequest['req'+seed];
   var item;
   var flag;
   var count = '0';
   try{request.readyState}catch(e){return false;}
   if (request.readyState == 4) {
      try{request.status}catch(e){return false;}
      if (request.status == 200) {
         self.testing = request;
         if(request.responseXML.documentElement) {
            var xmldoc = request.responseXML.documentElement;
            if (xmldoc.getElementsByTagName('item'))
               var item = xmldoc.getElementsByTagName('item')[0].firstChild.nodeValue;
            if (xmldoc.getElementsByTagName('flag'))
               var flag = xmldoc.getElementsByTagName('flag')[0].firstChild.nodeValue;
            if (xmldoc.getElementsByTagName('count'))
               var count = xmldoc.getElementsByTagName('count')[0].firstChild.nodeValue;

            if (!document.getElementById('portfolioItem'+item)) return false;
            if (document.getElementById('portfolioCount'))
               document.getElementById('portfolioCount').innerHTML = count;
               
            
            if (flag == '1') {
               document.getElementById('portfolioItem'+item).checked = true;
            }else{
               document.getElementById('portfolioItem'+item).checked = false;
            }
         }
      }
      delete arrRequest['req'+seed];
   }
}


var removeFromPortfolio = function (item) {
   if (!runsAjax) {
      // since this is post (not a get), i should do form submittion here.
      return false;
   }
   
   if (typeof item == 'undefined') return false;
   var getvars = '?itemID='+item;
   var url = "/js/ajax/removePortfolioItem.cfm" + getvars;
   var seed = Math.random();
   arrRequest["req" + seed] = getXmlHttpRequestObject();
   var request = arrRequest["req" + seed];
   request.onreadystatechange = (function (seed) {return function () {
      processRemovePort(seed);
   };})(seed);

   request.open('GET', url, true);
   request.send('');
   return true;
}

var processRemovePort = function(seed) {
   var request = arrRequest['req'+seed];
   var item;
   var flag;
   var count = '0';
   try{request.readyState}catch(e){return false;}
   if (request.readyState == 4) {
      try{request.status}catch(e){return false;}
      if (request.status == 200) {
         self.testing = request;
         if(request.responseXML.documentElement) {
            var xmldoc = request.responseXML.documentElement;
            if (xmldoc.getElementsByTagName('item'))
               var item = xmldoc.getElementsByTagName('item')[0].firstChild.nodeValue;
            if (xmldoc.getElementsByTagName('flag'))
               var flag = xmldoc.getElementsByTagName('flag')[0].firstChild.nodeValue;

            if (!document.getElementById('portfolioItem'+item)) return false;
            if (flag == '0') {
               document.getElementById('portfolioItem'+item).parentNode.removeChild(document.getElementById('portfolioItem'+item));
            }
         }
      }
      delete arrRequest['req'+seed];
   }
}


