// JavaScript Document
// Last Updated: 200812111107

//var SS_search_site_id = ""; //(AU|USA|NZ) default: AU
var SS_search_site_url = "http://www.shopsafe.com.au";
var SS_search_image_url = "http://img.shopsafe.com.au";
var SS_search_site_fname = "shopsafe_search_google.aspx";
var SS_search_product_fname = "shopsafe_search_xmlhttp.asp";
var c_favourite = "SS-SEARCH-FAVOURITE";
var c_favourite_pref = "SS-SEARCH-FAVOURITE-PREFLAYER-OPEN";

var SS_search_preflayer_id = document.getElementById("PREFLAYEROPEN");
var SS_search_container_id = document.getElementById("SEARCH-CONTAINER");
var SS_search_loader_id = document.getElementById("SEARCH-LOADER");
var SS_search_result_id = document.getElementById("ausearchresult");
var SS_search_showhideresult_id = document.getElementById("SHOW-HIDE-RESULT");
var SS_search_resultcontent_id = document.getElementById("SEARCH-RESULT-CONTENT");
var SS_search_resultbar_id = document.getElementById("SEARCH-RESULT-BAR");

var SS_favsearch_status_id = document.getElementById("FAVOURITE-STATUS");
var SS_favsearch_list_id = document.getElementById("favlist");
var SS_favsearch_button_id = document.getElementById("btFavourite");

if(!SS_search_site_id) var SS_search_site_id = "AU";

if(SS_search_site_id == "NZ"){
	SS_search_site_url = "http://www.shopsafe.co.nz";
	SS_search_image_url = "http://img.shopsafe.com";
	SS_search_site_fname = "shopsafenz_search_google.aspx";
	SS_search_product_fname = "shopsafenz_search_xmlhttp.asp";
	c_favourite = "SSNZ-SEARCH-FAVOURITE";
	c_favourite_pref = "SSNZ-SEARCH-FAVOURITE-PREFLAYER-OPEN";
}
else if(SS_search_site_id == "USA"){
	SS_search_site_url = "http://www.shopsafe.com";
	SS_search_image_url = "http://img.shopsafe.com.au";
	SS_search_site_fname = "shopsafeusa_search_google.aspx";
	SS_search_product_fname = "shopsafeusa_search_xmlhttp.asp";
	c_favourite = "SSUSA-SEARCH-FAVOURITE";
	c_favourite_pref = "SSUSA-SEARCH-FAVOURITE-PREFLAYER-OPEN";
}

var c_pref_open = getCookie(c_favourite_pref);
var objXMLHTTPSearch;

function initializeFavSearch(){
	if(eval(c_pref_open)){
		SS_search_preflayer_id.status = true;
		SS_search_container_id.style.display = "block";
		writeFavouriteSearch();
	}
	else{ SS_search_preflayer_id.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;
	SS_search_loader_id.style.display = "block";
	if(searchMode == "site") siteSearch(QSATLEAST,0);
	else productSearch(QSATLEAST,QSOCCURRENCE,QSPAGE);
}

function hideResult(val){
	if(val){
		SS_search_result_id.style.display = "none";
		SS_search_showhideresult_id.innerHTML = "<a href='javascript:hideResult(false)'>Show search result</a>";
	}
	else{
	  SS_search_result_id.style.display = "block";
		SS_search_showhideresult_id.innerHTML = "<a href='javascript:hideResult(true)'>Hide search result</a>";
	}
}

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 xmlGetNodeValue(node){
	if(node != null) return node.nodeValue;
	else return "";
}

/*** BEGIN PRODUCT SEARCH ***/
function productSearch(QSATLEAST,QSOCCURRENCE,QSPAGE){
  var obj = document.frmPreferences;
	obj.QSATLEAST.value = QSATLEAST;
	obj.QSOCCURRENCE.value = QSOCCURRENCE;
	obj.QSPAGE.value = QSPAGE;
	SS_search_container_id.style.display = "block";
	SS_search_resultcontent_id.style.display = "none";
	SS_search_loader_id.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.");
		SS_search_loader_id.style.display = "none";
		return;
	}
	var url = "/services/" + SS_search_product_fname;
	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 = xmlGetNodeValue(row.getElementsByTagName("vcRowNumber")[0].firstChild);
			var ProductName = xmlGetNodeValue(row.getElementsByTagName("vcProductName")[0].firstChild);
			var ProductNospaces = xmlGetNodeValue(row.getElementsByTagName("vcProductNospaces")[0].firstChild);
			var ProductImageOri = xmlGetNodeValue(row.getElementsByTagName("vcProductImageOri")[0].firstChild);
			var ProductImageSmall = xmlGetNodeValue(row.getElementsByTagName("vcProductImageSmall")[0].firstChild);
			var ProductImageOrigWidth = xmlGetNodeValue(row.getElementsByTagName("vcProductImageOrigWidth")[0].firstChild);
			var ProductImageOrigHeight = xmlGetNodeValue(row.getElementsByTagName("vcProductImageOrigHeight")[0].firstChild);
			var ProductBrand = xmlGetNodeValue(row.getElementsByTagName("vcProductBrand")[0].firstChild);
			var ProductDesc = xmlGetNodeValue(row.getElementsByTagName("vcProductDesc")[0].firstChild);
			var ProductPrice = xmlGetNodeValue(row.getElementsByTagName("vcProductPrice")[0].firstChild);
			var Currency = xmlGetNodeValue(row.getElementsByTagName("vcCurrency")[0].firstChild);
			var MerchantShortName = xmlGetNodeValue(row.getElementsByTagName("vcMerchantShortName")[0].firstChild);
			var MerchantNoSpaces = xmlGetNodeValue(row.getElementsByTagName("vcMerchantNoSpaces")[0].firstChild);
	    var CategoryNoSpaces = xmlGetNodeValue(row.getElementsByTagName("vcCategoryNoSpaces")[0].firstChild);
			var ProductURL = SS_search_site_url + "/featuredmerchants/" + ProductNospaces + ".htm";
			var CategoryURL = SS_search_site_url + "/merchants/" + MerchantNoSpaces + "/" + CategoryNoSpaces + ".htm";
			
			ProductPrice = Currency + ProductPrice;
			if(ProductImageOrigWidth == "") ProductImageOrigWidth = 0;
			if(ProductImageOrigHeight == "") ProductImageOrigHeight = 0;
			
			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=\"javascript:SS_imagePreview('" + ProductImageOri + "'," + ProductImageOrigWidth + "," + ProductImageOrigHeight + ",'" + ProductName + "')\" ";
			strHTML += "title='Click to see a larger image of &quot;" + ProductName + "&quot;' style='cursor:crosshair'>";
			strHTML += "<img id='" + ProductNospaces + "' src='" + SS_search_image_url + "/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='productdetail'>";
			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>";
		}
		SS_search_resultcontent_id.innerHTML = strHTML;
		SS_search_resultcontent_id.style.display = "block";
		SS_search_resultbar_id.style.display = "block";
		SS_search_loader_id.style.display = "none";
		writeFavouriteSearch();
	}
}
/*** END PRODUCT SEARCH ***/

/*** BEGIN SITE SEARCH ***/
function siteSearch(QSATLEAST,QSROW){
	document.frmPreferences.QSATLEAST.value = QSATLEAST;
	SS_search_container_id.style.display = "block";
	SS_search_resultcontent_id.style.display = "none";
	SS_search_loader_id.style.display = "block";
	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.");
		SS_search_loader_id.style.display = "none";
		return;
	}
	var url = "/services/" + SS_search_site_fname + "?query=" + QSATLEAST + "&start=" + QSROW + "&sid=" + Math.random();
	objXMLHTTPSearch.onreadystatechange = function(){ajaxResponseSiteSearch()};
	objXMLHTTPSearch.open("GET",url,true);
	objXMLHTTPSearch.send(null);
}
function ajaxResponseSiteSearch(){
	var strHTML = "";
	if(objXMLHTTPSearch.readyState == 4){
	  strHTML = objXMLHTTPSearch.responseText;
		SS_search_loader_id.style.display = "none";
	}
	SS_search_container_id.style.display = "block";
	SS_search_resultbar_id.style.display = "block";
	SS_search_resultcontent_id.style.display = "block";
	SS_search_resultcontent_id.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 += " - <small>site search</small>";
			else label += " - <small>product search</small>";
			str += "<li>" + label + " &nbsp; ";
			//str += "<a href='javascript:emailFavouriteSearch("+i+")'><img src='" + SS_search_image_url + "/images/ss_iconemail.gif' title='email this search' height='12' align='absmiddle' /></a>";
			//str += " &nbsp; ";
			str += "<a href='javascript:deleteFavouriteItem("+i+")'><img src='" + SS_search_image_url + "/images/au_deletefav.gif' title='delete this item' align='absmiddle' /></a>";
			str += "</li>"
		}
	}
	SS_favsearch_status_id.value = "open";
	if(str != ""){
		SS_favsearch_list_id.innerHTML = "<ul class='square'>" + str + "</ul>";
		SS_favsearch_status_id.value = "close";
	}
	if(eval(getCookie(c_favourite_pref))){
	  //keep window open
    SS_favsearch_status_id.value = "close";
		SS_search_container_id.style.display = "block";
  }
	showFavouriteSearch();
}
function showFavouriteSearch(){
  if(SS_favsearch_status_id.value == "close"){
    SS_favsearch_list_id.style.display = "block";
    SS_favsearch_button_id.innerHTML = "<img src='" + SS_search_image_url + "/images/au_closefav.gif' alt='Close' onclick='showFavouriteSearch();' />";
    SS_favsearch_status_id.value = "open";
  }
  else{
    SS_favsearch_list_id.style.display = "none";
    SS_favsearch_button_id.innerHTML = "<img src='" + SS_search_image_url + "/images/au_openfav.gif' alt='Open' onclick='showFavouriteSearch();' />";
    SS_favsearch_status_id.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(); 
	SS_favsearch_list_id.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);
}

function emailFavouriteSearch(idx){
	var strCookie = "[" + getCookie(c_favourite) + "]";
	var arrayCookie = eval(strCookie);
	var referer = location.href;
	if(idx != null){
		var search_key = arrayCookie[idx][0];
		var search_mode = arrayCookie[idx][1];
		referer += "?refererkey=" + search_key + "&referermode=" + search_mode;
		referer = escape(referer);
		SS_newWindow("http://localhost/services/emailafriendau_infosearch.asp?referer="+referer,"EmailInfoSearch",540,640,"yes");
	}
	else{
		alert("ALL");
	}
}
/*** END FAVOURITE SEARCH ***/

/*** BEGIN IMAGE PREVIEW ***/
function SS_newWindow(mypage,myname,w,h,scroll){
  if(w < 50) w = 300;
	if(h < 100) h = 400;
	var win= null;
  var winl = (screen.width-w)/2;
  var wint = (screen.height-h)/2;
	var settings  ='height='+h+',';
      settings +='width='+w+',';
      settings +='top='+wint+',';
      settings +='left='+winl+',';
      settings +='scrollbars='+scroll+',';
      settings +='resizable=yes';
  win = window.open(mypage,myname,settings);
  if(parseInt(navigator.appVersion) >= 4){win.window.focus();}
}
function SS_imagePreview(iurl,iwidth,iheight,ititle){
	SS_newWindow(SS_search_site_url+"/services/image_preview.asp?url="+iurl+"&title="+ititle,"ImagePreview",iwidth+30,iheight+80,"auto");
}
/*** END IMAGE PREVIEW ***/
//END OF DOCUMENT