// JavaScript Document
var objXMLHTTPSearch;
var c_favourite = "SS-SEARCH-FAVOURITE";
var c_favourite_pref = "SS-SEARCH-FAVOURITE-PREFLAYER-OPEN";
var c_pref_open = getCookie(c_favourite_pref);

function initializeFavSearch(){
	if(eval(c_pref_open)){
		document.getElementById("PREFLAYEROPEN").status = true;
		document.getElementById("SEARCH-CONTAINER").style.display = "block";
		writeFavouriteSearch();
	}
	else{ document.getElementById("PREFLAYEROPEN").status = false; }
}
initializeFavSearch();

function triggerSearch(e) {
  var keycode;
  if(window.event) keycode = window.event.keyCode;
  else if(e) keycode = e.which;
  if(keycode==13) doSearch();
}

function doSearch(){
  var obj = document.frmSearchTop;
	var QSATLEAST = obj.QSATLEAST.value;
	var QSOCCURRENCE = obj.QSOCCURRENCE.value;
	var QSPAGE = 1;

	var searchMode = "product"
	var optSearch = obj.QSMODE;
	for(var i=0; i < optSearch.length; i++){
	  if(optSearch[i].checked) searchMode = optSearch[i].value;
	}
	
	var objPref = document.frmPreferences;
	objPref.QSATLEAST.value = QSATLEAST;
	objPref.QSOCCURRENCE.value = QSOCCURRENCE;
	objPref.QSMODE.value = searchMode;
	
	document.getElementById("SEARCH-LOADER").style.display = "block";
	
	if(searchMode == "site") siteSearch(QSATLEAST,0);
	else productSearch(QSATLEAST,QSOCCURRENCE,QSPAGE);
}

function getXmlHttpObject(){
	var XMLHTTP = null;
	try{
		XMLHTTP = new XMLHttpRequest();
		//if (XMLHTTP.overrideMimeType) XMLHTTP.overrideMimeType("text/xml");
	}
	catch(e){
		try{ XMLHTTP = new ActiveXObject("Msxml2.XMLHTTP");	}
		catch(e){ XMLHTTP = new ActiveXObject("Microsoft.XMLHTTP");	}
	}
	return XMLHTTP;
}

function hideResult(val){
  var result = document.getElementById("ausearchresult");
	var button = document.getElementById("SHOW-HIDE-RESULT");
	if(val){
		result.style.display = "none";
		button.innerHTML = "<a href='javascript:hideResult(false)'>Show search result</a>";
	}
	else{
	  result.style.display = "block";
		button.innerHTML = "<a href='javascript:hideResult(true)'>Hide search result</a>";
	}
}

/*** BEGIN PRODUCT SEARCH ***/
function productSearch(QSATLEAST,QSOCCURRENCE,QSPAGE){
  var obj = document.frmPreferences;
	obj.QSATLEAST.value = QSATLEAST;
	obj.QSOCCURRENCE.value = QSOCCURRENCE;
	obj.QSPAGE.value = QSPAGE;
	document.getElementById("SEARCH-CONTAINER").style.display = "block";
	document.getElementById("SEARCH-RESULT-CONTENT").style.display = "none";
	document.getElementById("SEARCH-LOADER").style.display = "block";
	ajaxRequestProductSearch(QSATLEAST,QSOCCURRENCE,QSPAGE);
}

function goToPage(idx){
  var obj = document.frmPreferences;
	var QSATLEAST = obj.QSATLEAST.value;
	var QSOCCURRENCE = obj.QSOCCURRENCE.value;
	var QSPAGE = idx;
	window.self.scrollTo(0, 200);
	productSearch(QSATLEAST,QSOCCURRENCE,QSPAGE);
}

function ajaxRequestProductSearch(QSATLEAST,QSOCCURRENCE,QSPAGE){
	objXMLHTTPSearch = getXmlHttpObject();
	if(objXMLHTTPSearch==null) {
		alert ("Information: Request failed.");
		document.getElementById("SEARCH-LOADER").style.display = "none";
		return;
	}
	var url="http://www.shopsafe.com.au/services/shopsafe_search_xmlhttp.asp";
	url += "?QSATLEAST="+QSATLEAST;
	url += "&QSOCCURRENCE="+QSOCCURRENCE;
	url += "&QSPAGE="+QSPAGE;
	url += "&QSROWS=20";
	url += "&sid="+Math.random();
	objXMLHTTPSearch.onreadystatechange = function(){ajaxResponseProductSearch()};
	objXMLHTTPSearch.open("GET",url,true);
	if(objXMLHTTPSearch.overrideMimeType) objXMLHTTPSearch.overrideMimeType("text/xml");
	objXMLHTTPSearch.send(null);
}

function ajaxResponseProductSearch() { 
  var obj = document.frmPreferences;
	var QSPAGE = parseInt(obj.QSPAGE.value);
	var QSROWS = parseFloat(obj.QSROWS.value);
	var strHTML = "";
	if(objXMLHTTPSearch.readyState==4){
		if(window.ActiveXObject){ // If IE Windows
		  var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
		  xmldoc.loadXML(objXMLHTTPSearch.responseText);
		} 
		else{
		  var xmldoc = objXMLHTTPSearch.responseXML;
		}
		var rows = xmldoc.getElementsByTagName('row');
		var lastRow = rows.length;
		if(lastRow > 1) lastRow = rows.length-1;
		
		for(var i=0; i < lastRow; i++){
			var row = rows[i];
			var rowNumber = row.getElementsByTagName("vcRowNumber")[0].firstChild.nodeValue;
			var ProductName = row.getElementsByTagName("vcProductName")[0].firstChild.nodeValue;
			var ProductNospaces = row.getElementsByTagName("vcProductNospaces")[0].firstChild.nodeValue;
			var ProductImageOri = row.getElementsByTagName("vcProductImageOri")[0].firstChild.nodeValue;
			var ProductImageSmall = row.getElementsByTagName("vcProductImageSmall")[0].firstChild.nodeValue;
			var ProductBrand = row.getElementsByTagName("vcProductBrand")[0].firstChild.nodeValue;
			var ProductDesc = row.getElementsByTagName("vcProductDesc")[0].firstChild.nodeValue;
			var ProductPrice = row.getElementsByTagName("vcProductPrice")[0].firstChild.nodeValue;
			var Currency = row.getElementsByTagName("vcCurrency")[0].firstChild.nodeValue;
			var MerchantShortName = row.getElementsByTagName("vcMerchantShortName")[0].firstChild.nodeValue;
			var MerchantNoSpaces = row.getElementsByTagName("vcMerchantNoSpaces")[0].firstChild.nodeValue;
	    var CategoryNoSpaces = row.getElementsByTagName("vcCategoryNoSpaces")[0].firstChild.nodeValue;
			var ProductURL = "http://www.shopsafe.com.au/featuredmerchants/" + ProductNospaces + ".htm";
			var CategoryURL = "http://www.shopsafe.com.au/merchants/" + MerchantNoSpaces + "/" + CategoryNoSpaces + ".htm";
			
			ProductPrice = Currency + ProductPrice;
			
			strHTML += "<div class='product'>";
			strHTML += "<h2><a href='" + ProductURL +"' title='&quot;" + ProductName + "&quot;'>&quot;" + ProductName + "&quot; from " + ProductPrice + "</a></h2>";
			strHTML += "<div class='horrule'><hr /></div>";
			strHTML += "<div class='detailcontainer'>";
			strHTML += "<div class='productimage'>";
			strHTML += "<p><a href='" + ProductURL + "' title='&quot;" + ProductName + "&quot;'>";
			strHTML += "<img src='" + ProductImageSmall + "' alt='&quot;" + ProductName + "&quot;' border='0' class='productimg' width='125' />";
			strHTML += "</a></p>";
			strHTML += "<p><a href='" + ProductImageOri + "' title='Click to see a larger image of &quot;" + ProductName + "&quot;' target='_blank' >";
			strHTML += "<img id='" + ProductNospaces + "' src='http://img.shopsafe.com.au/images/ss_largerimage.gif' width='129' height='22' ";
			strHTML += "alt='Click to see a larger image of &quot;" + ProductName + "&quot;' />";
			strHTML += "</a></p>";
			strHTML += "</div>";
			strHTML += "<p class='poductdetail'>";
			strHTML += "<small>" + ProductBrand + "</small><br />" + ProductDesc + "... ";
			strHTML += "<a href='" + ProductURL + "' title='Read More about the &quot;" + ProductName + "&quot; on the " + MerchantShortName + " Website'>";
			strHTML += "Read More about the &quot;" + ProductName + "&quot; on the " + MerchantShortName + " Website</a>";
			strHTML += "<br /><br /><a href='" + CategoryURL + "' title='more in this category'>more in this category</a>";
			strHTML += "</p>";
			strHTML += "<div class='cleaner'><br class='clearfix' /></div>";
			strHTML += "</div>";
			strHTML += "<div class='horrule'><hr /></div>";
			strHTML += "<div class='productbuy'>";
			strHTML += "<p class='buythis'>";
			strHTML += "<a href='" + ProductURL + "' title='Read More About &quot;" + ProductName + "&quot; on the " + MerchantShortName + " Website'>";
			strHTML += "Buy this &quot;" + ProductName + "&quot; today from " + ProductPrice + " on the " + MerchantShortName + " website.</a>";
			strHTML += "</p>";
			strHTML += "<p class='buythisbutton'>";
			strHTML += "<a href='" + ProductURL + "' title='Read More About &quot;" + ProductName + "&quot; on the " + MerchantShortName + " Website' class='link_button'>GO &raquo;</a>";
			strHTML += "</p>";
			strHTML += "</div>";
			strHTML += "<div class='cleaner'><br class='clearfix' /></div>";
			strHTML += "</div>";
		}
		
		if(lastRow > 0){
			strHTML += "<div class='paging'>";
			strHTML += "<p>";
			if(QSPAGE > 1) strHTML += "<a href='javascript:goToPage(" + (QSPAGE-1) + ");' class='link_button'>&laquo; PREV</a>";
			for(var n=1; n<=QSPAGE; n++){
				if(n == QSPAGE) strHTML += "<span class='active'>" + QSPAGE + "</span>";
				else strHTML += "<a href='javascript:goToPage(" + n + ");' class='link_button'>" + n + "</a>";
			}
			if(rows.length > QSROWS) strHTML += "<a href='javascript:goToPage(" + (QSPAGE+1) + ");' class='link_button'>NEXT &raquo;</a>";
			strHTML += "</p>";
			strHTML += "</div>";
		}
		else{
			strHTML = "<div class='product'><p>&nbsp;</p><p>No records available for this search, please try an alternative keyword</p><p>&nbsp;</p></div>";
		}
		var contentDiv = document.getElementById("SEARCH-RESULT-CONTENT");
		contentDiv.innerHTML = strHTML;
		contentDiv.style.display = "block";
		document.getElementById("SEARCH-RESULT-BAR").style.display = "block";
		document.getElementById("SEARCH-LOADER").style.display = "none";
		writeFavouriteSearch();
	}
}
/*** END PRODUCT SEARCH ***/

/*** BEGIN SITE SEARCH ***/
function siteSearch(QSATLEAST,QSROW){
	document.frmPreferences.QSATLEAST.value = QSATLEAST;
	ajaxRequestSiteSearch(QSATLEAST,QSROW);
}
function siteGotoPage(QSROW){
  var QSATLEAST = document.frmPreferences.QSATLEAST.value;
	ajaxRequestSiteSearch(QSATLEAST,QSROW);
}
function ajaxRequestSiteSearch(QSATLEAST,QSROW){
	objXMLHTTPSearch = getXmlHttpObject();
	if(objXMLHTTPSearch==null) {
		alert ("Information: Request failed.");
		document.getElementById("SEARCH-LOADER").style.display = "none";
		return;
	}
	var url="http://www.shopsafe.com.au/services/shopsafe_search_google.aspx";
	url += "?query="+QSATLEAST;
	url += "&start="+QSROW;
	url += "&sid="+Math.random();
	objXMLHTTPSearch.onreadystatechange = function(){ajaxResponseSiteSearch()};
	objXMLHTTPSearch.open("GET",url,true);
	objXMLHTTPSearch.send(null);
}

function ajaxResponseSiteSearch(){
  var contentDiv = document.getElementById("SEARCH-RESULT-CONTENT");
	var strHTML = "";
	if(objXMLHTTPSearch.readyState==4){
	  strHTML = objXMLHTTPSearch.responseText;
	}
	document.getElementById("SEARCH-CONTAINER").style.display = "block";
	document.getElementById("SEARCH-RESULT-BAR").style.display = "block";
	document.getElementById("SEARCH-LOADER").style.display = "none";
	contentDiv.style.display = "block";
	contentDiv.innerHTML = strHTML;
	writeFavouriteSearch();
}
/*** END SITE SEARCH ***/

/*** BEGIN FAVOURITE SEARCH ***/
function getCookie(c_name){
  if(document.cookie.length > 0){
    var c_start = document.cookie.indexOf(c_name + "=");
    if(c_start != -1){ 
      c_start = c_start + c_name.length + 1; 
      var c_end = document.cookie.indexOf(";",c_start);
      if (c_end == -1) c_end = document.cookie.length;
      return unescape(document.cookie.substring(c_start,c_end));
    } 
  }
  return "";
}
function setCookie(c_name,value,expiredays){
	var mydate = new Date();
	mydate.setDate(mydate.getDate()+expiredays);
	document.cookie = c_name + "=" + escape(value) + ((expiredays==null) ? "" : ";expires=" + mydate.toGMTString());
}
function saveSearchResult(){
  var obj = document.frmPreferences;
	var ATLEAST = obj.QSATLEAST.value;
	var OCCURRENCE = obj.QSOCCURRENCE.value;
	var MODE = obj.QSMODE.value;
	
	var VALUE = '[["' + ATLEAST + '"],["' + MODE + '"]]';
	var strCookie = getCookie(c_favourite);
	
	var inArray = false;
	var bunny1 = '"' + eval(VALUE) + '"';
	var bunny2, tmp

	if(strCookie != ""){
		tmp = eval("[" + strCookie + "]");
		if(tmp.length > 0){
		  for(var i=0; i < tmp.length; i++){
			  bunny2 = '"' + tmp[i] + '"';
				if(bunny1 == bunny2) inArray = true;
			}
			if(!inArray) strCookie += ",";
		}
	}
	if(!inArray){
	  strCookie += VALUE;
		setCookie(c_favourite,strCookie,365);
	}
	writeFavouriteSearch();
}
function writeFavouriteSearch(){
  var str, label, i, j;
	var strCookie = "[" + getCookie(c_favourite) + "]";
	var arrayCookie = eval(strCookie);
	str = "";
	for(i=0; i < arrayCookie.length; i++){
		label = "";
		if(arrayCookie[i]){
			label = "<a href='javascript:loadFavouriteSearch("+i+")'>" + arrayCookie[i][0] + "</a>";
			if(arrayCookie[i][1] == "site") label += " - site search";
			else label += " - product search";
			
			str += "<li>" + label + " &nbsp;&nbsp;&nbsp; ";
			str += "<a href='javascript:deleteFavouriteItem("+i+")'><img src='http://img.shopsafe.com.au/images/au_deletefav.gif' title='delete this item'></a>";
			str += "</li>"
		}
	}
	document.getElementById("FAVOURITE-STATUS").value = "open";
	if(str != ""){
		document.getElementById("favlist").innerHTML = "<ul class='square'>" + str + "</ul>";
		document.getElementById("FAVOURITE-STATUS").value = "close";
	}
	if(eval(getCookie(c_favourite_pref))){
	  //keep window open
    document.getElementById("FAVOURITE-STATUS").value = "close";
		document.getElementById("SEARCH-CONTAINER").style.display = "block";
  }
	showFavouriteSearch();
}
function showFavouriteSearch(){
  var status = document.getElementById("FAVOURITE-STATUS");
	var favlist = document.getElementById("favlist");
	var bt = document.getElementById("btFavourite");
  if(status.value == "close"){
    favlist.style.display = "block";
    bt.innerHTML = "<img src='http://img.shopsafe.com.au/images/au_closefav.gif' alt='Close' onclick='showFavouriteSearch();' />";
    status.value = "open";
  }
  else{
    favlist.style.display = "none";
    bt.innerHTML = "<img src='http://img.shopsafe.com.au/images/au_openfav.gif' alt='Open' onclick='showFavouriteSearch();' />";
    status.value = "close";
  }
}
function deleteFavouriteItem(idx){
  var strCookie = "[" + getCookie(c_favourite) + "]";
	var arrayCookie = eval(strCookie);
	var newCookie = "";
	var n = 0;
	var tmp, dummy;
	var c_length = arrayCookie.length;
	if(arrayCookie.length > 1){
		for(var i=0; i < arrayCookie.length; i++){
			if(i != idx){
				dummy = arrayCookie[i];
				tmp = "";
				for(var j=0; j < dummy.length; j++){
					tmp += '["' + arrayCookie[i][j] + '"]';
					if(j < dummy.length-1) tmp += ",";
				}
				newCookie += "[" + tmp + "]";
				if(n < c_length-2) newCookie += ",";
				n += 1;
			}
		}
	}
	clearFavouriteSearch();
	if(n > 0){
		setCookie(c_favourite,newCookie,365);
	  writeFavouriteSearch();
	}
}

function clearFavouriteSearch(){
  var mydate = new Date();
	mydate.setTime(mydate.getTime() - 1);
	document.cookie = c_favourite + "=; expires=" + mydate.toGMTString(); 
	document.getElementById("favlist").innerHTML = "";
	showFavouriteSearch();
}

function loadFavouriteSearch(idx){
	var strCookie = getCookie(c_favourite);
	var arrayCookie = eval("[" + strCookie + "]");
	if(arrayCookie.length > 0){
		var QSATLEAST = arrayCookie[idx][0];
		var QSMODE = arrayCookie[idx][1];
		var QSOCCURRENCE = "ANY"
		var QSPAGE = 1;
		if(QSMODE == "site") siteSearch(QSATLEAST,0);
		else productSearch(QSATLEAST,QSOCCURRENCE,QSPAGE);
	}
}

function setPrefLayerOpen(e){
	var pref = e.checked;
  var mydate = new Date();
	mydate.setTime(mydate.getTime() - 1);
	document.cookie = c_favourite_pref + "=; expires=" + mydate.toGMTString(); 
	setCookie(c_favourite_pref,pref,365);
}
/*** END FAVOURITE SEARCH ***/
//END OF DOCUMENT

