/********************* PROMO NEWS HTTP SEARCH FUNCTIONS *********************
 *
 * Version 1.1
 *
 ****************************************************************************/

var PROMO_NEWS_SEARCH_PAGE_NO = 1;
var PROMO_NEWS_SEARCH_FORM = null;
var PROMO_NEWS_SEARCH_CSSID = null;
var PROMO_NEWS_SEARCH_MODE;
var PROMO_NEWS_LAST_FORM_SEARCH;

function promonews_searchautoload(xszCSSID)
{
    //called when the page first loads up
    PROMO_NEWS_SEARCH_CSSID = xszCSSID;

    if(promonews_loadfromcookie())
    {
        PROMO_NEWS_SEARCH_MODE = 'searchbycookie';
    }
    else
    {
        PROMO_NEWS_SEARCH_MODE = PROMO_NEWS_AUTOLOAD;
    }

    promonews_updateprogress("<img src='images/searching.gif'>");
    promonews_httpsearchreq(null, xszCSSID);
}

function promonews_search(xoForm, xszCSSID)
{
    PROMO_NEWS_SEARCH_FORM = xoForm;
    PROMO_NEWS_SEARCH_CSSID = xszCSSID;
    PROMO_NEWS_SEARCH_MODE = 'search';
    PROMO_NEWS_SEARCH_PAGE_NO = 1;

    //promonews_cleardiv(xszCSSID);
    promonews_cleardiv('userItems');
    promonews_updateprogress("<img src='images/searching.gif'>");

    //save search criteria in cookie for reload
    promonews_cookiesavesearch(xoForm);

    //make request
    promonews_httpsearchreq(xoForm, xszCSSID);
}

function promonews_searchbypage(xiPageNo)
{
    PROMO_NEWS_SEARCH_PAGE_NO = xiPageNo;
    PROMO_NEWS_SEARCH_MODE = 'search';
    promonews_updateprogress("<img src='images/searching.gif'>");

    //save search criteria in cookie for reload
    promonews_cookiesavesearch(PROMO_NEWS_SEARCH_FORM);

    //make request
    promonews_httpsearchreq(PROMO_NEWS_SEARCH_FORM, PROMO_NEWS_SEARCH_CSSID);

    promonews_updateprogress("");
}

function promonews_httpsearchreq(xoForm, xszCSSID)
{
    var xmlhttp=null;
    var urlPROMONEWS = PROMO_NEWS_SEARCH_URL;
    var szURLParams = "";

    // code for Mozilla, etc.
    if (window.XMLHttpRequest)
    {
        xmlhttp=new XMLHttpRequest();
    }
    // code for IE
    else if (window.ActiveXObject)
    {
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }

    if (xmlhttp!=null)
    {

        xmlhttp.open("POST","httpproxy.php" , true);

        xmlhttp.onreadystatechange = function()
                                        {
                                            if (xmlhttp.readyState == 4)
                                            {
                                                if (xmlhttp.status == 200)
                                                {
                                                    //something has been returned
                                                    promonews_searchhandler(xmlhttp.responseXML, xszCSSID);
                                                }
                                                else
                                                {
                                                    //error has occurred
                                                    promonews_statuserror(xmlhttp.status, xmlhttp.statusText);
                                                }
                                            }
                                        }

        if(PROMO_NEWS_SEARCH_MODE == 'searchbycookie')
        {
            //must be an autoload, in which case determine
            //whether a search has been done before and load it

            xoForm = document.forms[PROMO_NEWS_LAST_FORM_SEARCH];

            if(xoForm)
            {
                //the form exists so get search
                PROMO_NEWS_SEARCH_MODE = 'search';
            }
            else
            {
                PROMO_NEWS_SEARCH_MODE = PROMO_NEWS_AUTOLOAD;
            }
        }

         if(xoForm != null)
         {
             for(var i=0; i < xoForm.elements.length; i++)
             {
                  if(xoForm.elements[i].value.length != 0)
                  {
                        if(szURLParams.length > 0)
                        {
                            szURLParams += "&";
                        }

                        szURLParams += xoForm.elements[i].name + "=" + xoForm.elements[i].value;
                  }
             }

             szURLParams += "&";
         }
			//o2i-->
			var x = readCookie('searchpagesize');
			if(x != null)
			{
				PROMO_NEWS_SEARCH_PAGE_SIZE = x;
			}
			setPageDropDown(PROMO_NEWS_SEARCH_PAGE_SIZE);
		
			if(document.getElementById('resultperpage'))
			{
				document.getElementById('resultperpage').style.visibility = 'visible';
			}
		

			//o2i
			
         szURLParams += "pageno=" + PROMO_NEWS_SEARCH_PAGE_NO;
         szURLParams += "&pagesize=" + PROMO_NEWS_SEARCH_PAGE_SIZE;
         szURLParams += "&accesscode=" + PROMO_NEWS_ACCESS_CODE;
         szURLParams += "&httpservice=" + PROMO_NEWS_SEARCH_MODE;

         var szFullURL = urlPROMONEWS+'?' + szURLParams;

         /* Send the POST request */
         xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
         //alert('PARAMS:=' + szURLParams);
         //xmlhttp.send(szURLParams);
         xmlhttp.send("url=" + escape(szFullURL));
    }

    return;
}

function promonews_searchhandler(xohttp, xszCSSID)
{
    promonews_cleardiv(xszCSSID);

    var oRoot = xohttp.documentElement;
    var iStatusIndex = oRoot.childNodes.length - 2;
    var oStatus = oRoot.childNodes[iStatusIndex];
    var szStatusID = oStatus.getAttribute("id");
    var szStatusMsg = oStatus.getAttribute("message");
    var oResults = oRoot.childNodes[iStatusIndex+1];

    var oProductNode;
    var szProductViewLink = PROMO_NEWS_PRODUCT_PAGE + "?productid=";

    if(szStatusID != "0")
    {
        //error returned
        promonews_statuserror(szStatusID, szStatusMsg);
    }
    else
    {
        var iTotalProducts = oResults.getAttribute("totalproducts");
        var iCurrentPageNo = parseInt(oResults.getAttribute("pageno"));
        var iTotalPages = parseInt(oResults.getAttribute("totalpages"));

        if(parseInt(iTotalProducts) > 0)
        {
            for(var i=0; i < oResults.childNodes.length; i++)
            {
                oProductNode = oResults.childNodes[i];

                if(oProductNode.attributes)
                {
                    promonews_addproduct(xszCSSID,
                                        szProductViewLink + oProductNode.getAttribute("id"),
                                        oProductNode.getAttribute("imagepath"),
                                        oProductNode.getAttribute("name"),
                                        oProductNode.getAttribute("pricerange"),
                                        oProductNode.getAttribute("description"));
                }
            }
			var oleftparts = document.getElementById("leftparts");
			oleftparts.innerHTML = iTotalProducts;
			promonews_showresultInfo(iTotalProducts);//02i
            promonews_showpagination(iCurrentPageNo, iTotalPages);
        }
        else
        {
            promonews_updateprogress("No products found");
        }

    }

}


function promonews_addproduct(xszCSSID, xszViewLink, xszImagePath, xszProductName, xszPriceRange, xszDescription)
{
    var oElement = document.getElementById(xszCSSID);
    var szProductHTML  = '<p><div class="catalogueResult">';
        szProductHTML += '   <div class="catalogueResultContainer">';
	    szProductHTML += '      <a href="~ViewLink~" title="View Item"><img src="~ImagePath~" width="90" height="90" alt="~ProductName~" /></a>';
	    szProductHTML += '      <ul>';
	    szProductHTML += '        <li><strong class="catProductName blue">~ProductName~</strong></h2>';
	    szProductHTML += '        <li><small>Price Range</small><br /><span class="price">~PriceRange~</span></li>';
	    //szProductHTML += '        <li><strong>Description</strong><br /><span class="description">~Description~</span></li>';
        szProductHTML += '      </ul>';
	    szProductHTML += '      <a href="~ViewLink~" title="View Item" class="viewItem">View Item</a>';
	    szProductHTML += '   </div>';
        szProductHTML += '</div></p>';

    if(oElement)
    {
        promonews_updateprogress("");

        //shorten description if required...
        var iMinLength = 25;
        if(xszDescription.length > iMinLength)
        {
            var iSpacePos = xszDescription.indexOf(' ', iMinLength);

            if(iSpacePos > 0)
            {
                xszDescription = xszDescription.substr(0, iSpacePos);
            }
            else
            {
                xszDescription = xszDescription.substr(0, iMinLength);
            }

            xszDescription += '<a href="' + xszViewLink + '"> ...more</a>';
        }

        szProductHTML = szProductHTML.replace(/~ImagePath~/gi, xszImagePath);
        szProductHTML = szProductHTML.replace(/~ProductName~/gi, xszProductName);
        szProductHTML = szProductHTML.replace(/~PriceRange~/gi, xszPriceRange);
        szProductHTML = szProductHTML.replace(/~Description~/gi, xszDescription);
        szProductHTML = szProductHTML.replace(/~ViewLink~/gi, xszViewLink);

        oElement.innerHTML += szProductHTML;
    }
}

function promonews_showpagination(xiCurrentPage, xiTotalPages)
{
    var oPagination = document.getElementById("searchpagination");

    if(oPagination)
    {
        oPagination.innerHTML = "";

        if(xiCurrentPage > 1)
        {
            var iPrevPage = xiCurrentPage - 1;
            //oPagination.innerHTML += "<span class=\"left\"><a href=\"javascript: promonews_searchbypage(" + iPrevPage +")\">Previous</a></span>";
            //oPagination.innerHTML += "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
        }

        if(xiCurrentPage < xiTotalPages)
        {
            var iNextPage = xiCurrentPage + 1;
            //oPagination.innerHTML += "<span class=\"right\"><a href=\"javascript: promonews_searchbypage(" + iNextPage +")\">Next</a></span>";
        }
		//o2i-->
		var startPg = 0;
		var lastPg=0;
		if( (xiCurrentPage % 5) == 0) { startPg = (((xiCurrentPage-1)/5)*5+1); }
		else { startPg = (Math.floor(xiCurrentPage/5)*5+1); }
		if(xiTotalPages > (startPg+5 -1) ) { lastPg = startPg + 5 - 1; }
		else { lastPg = xiTotalPages; }
		
		var strPgs = "";
		strPgs += "<ul id=\"pagination\">";
		strPgs += "<li class=\"pageNumber\">Page "+ xiCurrentPage +" of "+ xiTotalPages +"</li>"
		strPgs += "<li><a href=\"javascript: promonews_searchbypage(1)\">First</a></li>";
        if(xiCurrentPage > 1)
        {
            var iPrevPage = xiCurrentPage - 1;
			strPgs += "<li><a href=\"javascript: promonews_searchbypage("+iPrevPage+")\">&laquo;</a></li>";
        }
		
		for(i=startPg; i <= lastPg; i++)
		{
			var strSel="";
			strSel = (i == xiCurrentPage) ? "class=\"selected\"" : "";
			strPgs += "<li><a href=\"javascript: promonews_searchbypage(" + i +")\""+ strSel +">"+ i +"</a></li>";
		}
        
		if(xiCurrentPage < xiTotalPages)
        {
            var iNextPage = xiCurrentPage + 1;
			strPgs += "<li><a href=\"javascript: promonews_searchbypage("+iNextPage+")\">&raquo;</a></li>";
		}
		strPgs += "<li><a href=\"javascript: promonews_searchbypage("+xiTotalPages+")\">Last</a></li>";
		strPgs += "</ul><br />";
		oPagination.innerHTML += strPgs;
		//<--o2i

    }
}


function promonews_cleardiv(xszCSSID)
{
    var oElement = document.getElementById(xszCSSID);

    if(oElement)
    {
        oElement.innerHTML = "";
    }
}

function showAdvSearch()
{
    document.getElementById('advancedSearch').style.display= PROMO_NEWS_ADVSEARCH_DISPLAY;
    document.getElementById('searchbar').style.height= PROMO_NEWS_SEARCHBAR_HEIGHT;
    document.getElementById('searchbar').style.backgroundImage='url("' + PROMO_NEWS_BG_IMAGE + '")';
}

/****** cookie functions *******/
function promonews_cookiesavesearch(xoForm)
{
    var szCookie;

    if(xoForm)
    {
        document.cookie = 'formname=' + xoForm.name + '; path=/;';
        document.cookie = 'pageno=' + PROMO_NEWS_SEARCH_PAGE_NO + '; path=/;';

        for(var i=0; i < xoForm.elements.length; i++)
        {
            document.cookie = xoForm.elements[i].name +"="+xoForm.elements[i].value + "; path=/;";
        }
    }

}

function promonews_loadfromcookie()
{
    var oCookie = document.cookie;
    var arrCookie;
    var arrCookiePair;
    var oForm;
    var blLoaded = false;
    var szCookieName;
    var szCookieValue;
    var iFound = 0;
    var iPageNo = 1;
    var szFormName = '';

    if(oCookie)
    {
        if(oCookie.length > 0)
        {
            //first get form name
            arrCookie = oCookie.split(';');

            for(var i=0; i < arrCookie.length; i++)
            {
                if(arrCookie[i].indexOf('formname=') > -1)
                {
                    arrCookiePair = arrCookie[i].split('=');
                    szFormName = arrCookiePair[1];
                    iFound++;
                }
                else if(arrCookie[i].indexOf('pageno=') > -1)
                {
                    arrCookiePair = arrCookie[i].split('=');
                    iPageNo = arrCookiePair[1];
                    iFound++;
                }

                if(iFound == 2)
                {
                    //found both items so stop searching
                    break;
                }
            }

            //now repopulate form with cookie data
            oForm = document.forms[szFormName];

            if(oForm)
            {
                PROMO_NEWS_LAST_FORM_SEARCH = szFormName;
                PROMO_NEWS_SEARCH_PAGE_NO = iPageNo;

                for(var i=0; i < arrCookie.length; i++)
                {
                    arrCookiePair = arrCookie[i].split('=');
                    szCookieName = promonews_trim(arrCookiePair[0]);
                    szCookieValue = promonews_trim(arrCookiePair[1]);

                    if(oForm.elements[szCookieName])
                    {
                        oForm.elements[szCookieName].value = szCookieValue;
                    }
                }

                blLoaded = true;
            }

        }
    }

    return blLoaded;
}

function promonews_trim(str)
{
    if(str)
    {
        str = this != window? this : str;
        str = str.replace(/^\s+/g, '').replace(/\s+$/g, '');
    }
    else
    {
        str = '';
    }

    return str;
}
//o2i start-->
function promonews_showresultInfo(xiTotalResult)
{
    var ototalResult = document.getElementById("totalResult");

    if(ototalResult)
    {
        ototalResult.innerHTML = "";

        if(xiTotalResult > 1)
        {
            ototalResult.innerHTML += "Your search retrieved "+ xiTotalResult + " results";
            ototalResult.innerHTML += "&nbsp;&nbsp;&nbsp;";
        }
		else
		{
            ototalResult.innerHTML += "Your search retrieved 0 results, please refine your search.";
		}

    }
}
function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}
function setPageDropDown(intpageSize)
{
	var pageSize = document.getElementById("showResults");
	if(pageSize)
	{
		for(var i=0;i<=pageSize.options.length-1;i=i+1)
		{
			if(pageSize.options[i].value == intpageSize)
			{
				pageSize.selectedIndex = i;
				break;
			}
		}
	}

}
//<--o2i end<!-- 

 -->