window.onload = initPage;

var newSearch=false;

function initPage() {
  document.getElementById("inputText").onkeyup = validasiSearch;
  document.getElementById("buttonSubmit").disabled = true;
  document.getElementById("buttonSubmit").onclick = searchIt;
  
  var url=location.href;
  if(url.length>0){
    var firstSplit=url.split("?",2);
    if(firstSplit.length>=2){
        var param=firstSplit[1];
        var secondSplit=param.split("=");
        var paramInputText=secondSplit[1];
        document.getElementById("inputText").value=paramInputText;
        searchIt();
    }
  }
}


function validasiSearch(e){
    if (!e) var e = window.event;
    
    if (e.keyCode) {
        code = e.keyCode;
    } else if (e.which) {
        code = e.which;
    }
    
    var wordExist=document.getElementById("inputText").value.length;
    if (code == 13 && wordExist >= 0) {
        searchIt();
    } else{
        if(document.getElementById("inputText").value.length>0){
            document.getElementById("buttonSubmit").disabled = false;
        } else{
            document.getElementById("buttonSubmit").disabled = true;
        }
    }
}

function searchIt(){
   request = createRequest();
   newSearch=true;
   if (request == null)
   		alert("Unable to create request");
   else {
        var dicari=document.getElementById("inputText").value;
        var url="search-promo-json2.php?inputText=" + dicari;
        request.onreadystatechange=displayResult;
        request.open("GET", url, true);
        request.send(null);
   }
}

function loadPage(page){
   request = createRequest();
   newSearch =false;
   if (request == null)
    	alert("Unable to create request");
   else {
        var dicari=document.getElementById("inputText").value;
        var url="search-promo-json2.php?inputText=" + dicari+ "&page=" + page;
        request.onreadystatechange=displayResult;
        request.open("GET", url, true);
        request.send(null);
   }
}

function displayResult() {
  if (request.readyState == 4) {
    if (request.status == 200) {
      if (request.responseText.length>0) {
		var resultObj=eval('(' + request.responseText + ')');
		var innerHtml=constructHtml(resultObj);
		document.getElementById("searchResults").innerHTML =innerHtml;
		if(resultObj.RandomKeyWord.length>0){
		    buildNotFoundAssesoris(resultObj.TotalProduct, resultObj.SearchFor, resultObj.Returned);
		} else {
		    buildFoundAssesoris(resultObj.TotalProduct, resultObj.SearchFor, resultObj.Returned);
		}
		
      } else {
//        document.getElementById("username").className = "denied";
//        document.getElementById("username").focus();
//        document.getElementById("username").select();
//        document.getElementById("register").disabled = true;
      }
    }
  }
}

function buildNotFoundAssesoris(totalProduct, searchFor, returned) {
     document.getElementById("displayTotalDitemukan").innerHTML ="Total produk Bonastoco saat ini adalah " + totalProduct + " produk";
     document.getElementById("displayTotalProduk").innerHTML ="Tidak ditemukan produk dengan pencarian \"" + searchFor + "\"";

     if (newSearch) initPaging(3);
     	document.getElementById("searchResults").insertBefore(createPeringatanBarangTidakAda(),document.getElementById("searchResults").firstChild);
}

function buildFoundAssesoris(totalProduct, searchFor, returned)
{
      document.getElementById("displayTotalDitemukan").innerHTML ="Total produk Bonastoco saat ini adalah " + totalProduct + " produk";
      document.getElementById("displayTotalProduk").innerHTML ="Untuk pencarian \"" + searchFor + "\" ditemukan sebanyak " + returned + " produk";
      if (newSearch) initPaging(returned);
}

function constructHtml(resultObj){
	var htmlResult='<table class="volumeList"><tbody>';
	//resultSearch=resultObj.Data.length;
	for(var i=0; i<resultObj.Data.length;i++)
	{
		var data=resultObj.Data[i];
		htmlResult =htmlResult + '<tr>' +
                          '<td><div id="productImage' + i +'" class="productImage"><a href="' + data.productUrl + '"><img src="' + data.img1Url +'"/></a></div></td>' +
				  '<td width="100%"><div id="productDes' + i +'" class="productDes"><div class="innerProductDes">' +
				  '<a href="' + data.productUrl + '">' + data.nama+ '-' + data.productcode +'</a>' + 
                          '<br>' + data.keterangan+ 
				  '<br/>' + constructHarga(data.hargaNormal,data.harga)+ 
				  '<br/><a href="' + data.profileUrl + '">' + data.namasupplier + '</a>. ' + data.city+ 
				  '<br/>' + data.messenger + ' ' + data.emails +
				  '</div></div></td>' +
				  '</tr>';
	
	}
	htmlResult = htmlResult + '</tbody></table>';
	return htmlResult ;
}

function createPeringatanBarangTidakAda() {
    var div=document.createElement("div");
    div.id="warnNotFound";
    var txt=document.createTextNode("Produk berikut kami ditampilkan secara acak");
    div.appendChild(txt);
    return div;
}

function constructHarga(normal, promo) {
	var persen=0;
	var tmpNormal=normal;
	var tmpPromo=promo;
	if(tmpNormal==0)
		persen=0;
	else
		persen=(tmpNormal-tmpPromo)/tmpNormal *100;
	var result="";

	if(tmpNormal==0 || tmpPromo==0){
		var jml= parseFloat(tmpNormal)+ parseFloat(tmpPromo);
		result="Harga : Rp " + addCommas(jml);
	} else {
		result="Harga Promo : Rp " + addCommas(tmpPromo) + ". Harga Normal : Rp " + addCommas(tmpNormal) + ". Diskon : " + parseInt(persen) + "%";
	}
	return result;
}

function addCommas(nStr) {
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}
