var ArrPageIds = new Array();

function GoToPage(hiddenName, hiddenValue, bookMark, formName) {
   hiddenName.value = hiddenValue;
   theForm = eval("document."+formName);

   if(bookMark.length > 0)
      theForm.action = theForm.action+"#"+bookMark;
   theForm.submit();
   return true;
}

function chechForKeywords() {
   re = / /gi;

   if (document.searchform2.keywords2.value.replace(re,'') == '') {
      alert('Please enter keywords for search!');
      document.searchform2.keywords2.value = "";
      document.searchform2.keywords2.focus();
      return false;
   }

   //document.searchform2.searching.value = 1;
   return true;
}

function showHide(id, linkID){
         //used on Shopping Cart page for opening and closing BCB details

             var obj = document.getElementById(id);

             var bcbFlag = false;
             var detTable = obj.childNodes[0];
             if(obj.className.indexOf('bcbDetails')>=0){bcbFlag = true;}


             if(obj.style.display == 'none') {
                obj.style.display = 'block';
                document.getElementById(linkID).innerHTML = 'Hide Content';

                if(bcbFlag){
                  obj.style.height = 27*parseInt(detTable.getElementsByTagName('tr').length)+"px";
                }

             } else {
                 obj.style.display = 'none';
                 document.getElementById(linkID).innerHTML = 'Show Content';
            }
         }

function showHideLogin() {
   oDivMenu = document.getElementById("lgn");
   oDivMenu.style.display = (oDivMenu.style.display == "none") ? "block" : "none";
}

var httpReq;
var qField;
var bsktVal;
var trgtMsgArea;

/* General Create Request Object*/
function createRequestObject() {
   var ro;

   if (window.XMLHttpRequest) {
      ro = new XMLHttpRequest();
   } else {
      if (window.ActiveXObject) {
         ro = new ActiveXObject("Microsoft.XMLHTTP");
      }
   }
   return ro;
}

/*== AJAX Functions For Adding Product to Basket ==*/
function addToBasket(pid,prc) {
   qField = document.getElementById("prBoxQ"+pid);
   quantity = parseInt(qField.value);
   trgtMsgArea    = document.getElementById("alrtDiv");
   bsktVal        = document.getElementById("shCartVal");

   if(pid > 0) {
      httpReq = createRequestObject();
      var aParams = new Array();
      var sParam = encodeURIComponent("pid");
      sParam += "=";
      sParam += encodeURIComponent(pid);
      aParams.push(sParam);

      sParam = encodeURIComponent("prc");
      sParam += "=";
      sParam += encodeURIComponent(prc);
      aParams.push(sParam);

      sParam = encodeURIComponent("q");
      sParam += "=";
      sParam += encodeURIComponent(quantity);
      aParams.push(sParam);

      sBody = aParams.join("&");

      url = "add_to_basket.php";
      httpReq.open("POST", url, true);
      httpReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
      httpReq.onreadystatechange = handleBsktResponse;
      httpReq.send(sBody);
   }
   
   window.location = 'shopping_redirect.php';
}

function checkBsktReadyState() {
   switch(httpReq.readyState) {
      case 0:
         trgtMsgArea.style.display = "block";
         break;
      case 1:
         trgtMsgArea.style.display = "block";
         break;
      case 2:
         trgtMsgArea.style.display = "block";
         break;
      case 3:
         trgtMsgArea.style.display = "block";
         break;
      case 4:
         trgtMsgArea.style.display = "none";
         return (httpReq.status == 200);
         break;
      default:
         trgtMsgArea.style.display = "block";
   }
}

function handleBsktResponse() {
   if(checkBsktReadyState()) {
      bsktVal.innerHTML = (parseFloat(httpReq.responseText) > 0) ? "<strong>Order value: " + httpReq.responseText + ".00</strong><div class = \"proceed\"><a href = \"shopping_cart.php\">proceed</a></div>" : "your Basket is EMPTY";
   }
}
/*== END AJAX Functions For Adding Product to Basket ==*/

function checkSubmitOrder() {
   re = / /gi;

   f = document.itemform;

   //if ((f.cardNumber.value.replace(re,'') == '')) {
      //alert('Please enter CREDIT CARD NUMBER!');
      //f.cardNumber.value = "";
      //f.cardNumber.focus();
      //return false;
   //}

   //if ((f.cardExpDate.value.replace(re,'') == '')) {
      //alert('Please enter CREDIT CARD EXPIRATION DATE!');
      //f.cardExpDate.value = "";
      //f.cardExpDate.focus();
      //return false;
   //}

   //if ((f.cardCode.value.replace(re,'') == '')) {
      //alert('Please enter CREDIT CARD CODE!');
      //f.cardCode.value = "";
      //f.cardCode.focus();
      //return false;
   //}

   //if ((f.cardName.value.replace(re,'') == '')) {
      //alert('Please enter NAMES ON CREDIT CARD!');
      //f.cardName.value = "";
      //f.cardName.focus();
      //return false;
   //}
   
   if(f.paymentType[2].checked == true && f.pOrderNumber.value == ''){
	   alert('Please insert purchase order number!');
	   return false;
   }
   if(f.country_id.value==2 && f.vat_number.value==''){
	  alert('Please insert VAT number!');
	   return false; 
   }

   f.confirmOK.value = 1;
   return true;
}

function showHideDtls(elm) {
   var div = document.getElementById('hintDv');

   var pos = _bsn.DOM.getPos(elm);

   div.style.left    = (pos.x + 18) + "px";
   div.style.top     = (pos.y) + "px";

   if(div.style.display == 'block')
      div.style.display = 'none';
   else {
      div.style.display = 'block';
   }
}

function openClose(elemID){
         //switches between 2 general styles for an element - open and closed
            var contnr = document.getElementById(elemID);
            if(contnr.className == 'closed'){ contnr.className = 'open'; }
            else { contnr.className = 'closed'; }
         }


function initPagination() {
            var pagLists = new Array();

            var ulsArr = document.getElementsByTagName('UL');
            for(var i=0; i < ulsArr.length; i++ ){
               if(ulsArr[i].className.indexOf('pagination')>=0){
                  pagLists.push(ulsArr[i]);
               }

               if(ulsArr[i].className.indexOf('perPagination')>=0){
                  pagLists.push(ulsArr[i]);
               }

            }

            for(i=0; i < pagLists.length; i++ ){
               var linksArr = pagLists[i].getElementsByTagName('A');

               for(var j=0; j < linksArr.length; j++ ){
                  if(linksArr[j].className.indexOf('prev-next') < 0){
                     linksArr[j].onclick = function(){ switchPage(this, this.parentNode.parentNode.getAttribute('paginate'), 'open', 'current');};
                  } else {
                     linksArr[j].onclick = function(){ nextPage(this, this.parentNode.parentNode.getAttribute('paginate'), 'open', 'current');};
                  }
               }
            }

         }

         function doPages(ids, perPage, page)
         {
            //alert(ids[0]);

            var navDivTop = document.getElementById('probesListPagination');
            var navDivBottom = document.getElementById('probesListPaginationBottom');
            //alert(ids.length);
            if(ids.length<=10)
            {
              if(navDivTop!=null) navDivTop.style.display = "none";
              if(navDivBottom!=null)navDivBottom.style.display = "none";
            }
            else
            {
              if(navDivTop!=null) navDivTop.style.display = "block";
              if(navDivBottom!=null)navDivBottom.style.display = "block";
            }

            var index = perPage*(page-1);
            for(var i=0;i<ids.length;i++)
            {

         if(document.getElementById(ids[i])==null){continue;}

              if(i>=index && i<index+perPage)
              {
                document.getElementById(ids[i]).style.display = "block";
              }
              else
              {
                document.getElementById(ids[i]).style.display = "none";
              }
            }

            var all = ids.length;
            var pages = Math.ceil(ids.length/perPage);

            var pageCont = document.getElementById('pageUlTop');
            var pageCont1 = document.getElementById('pageUlBottom');

            var pageTotal = document.getElementById('pageTotal');

            //pageTotal.innerHTML = all;

            if(pages>1)
            {
              pageCont.style.display = "block";
              pageCont1.style.display = "block";

              var add= "";
              //var html = "<li><span>page:</span></li>";
			  var html = "";

         //var showDots = 1;

              for(i=1;i<=pages;i++)
               {
                   //ArrPageIds - array sadurzasht id-tata na vidimite producti. Toi po princip si e globalen masiv i ne e nuzno da s epredva na funciqta, no go ima ako trqbva za neshto drugo
                   //if(i==1 || (i>=page-1 && i<=page+1) || i==pages)
         //{
         if(page==i) {add = 'class="current"';} else {add ="";}

         //html = html + '<li><a href="javascript://return false;" onClick="doPages(ArrPageIds, '+perPage+', '+i+')" '+add+'  >'+i+'</li>';
		 html = html + '<a href="javascript://return false;" onClick="doPages(ArrPageIds, '+perPage+', '+i+')" '+add+'  >'+i+'';
		 
         //   showDots =1;
              //}
         //else if(showDots)
         //{
         //   pageCont.innerHTML = pageCont.innerHTML  + '<li>...</li>';
         //   showDots=0;
         //}

               }
               pageCont.innerHTML = html;
               pageCont1.innerHTML = html;
            }
            else
            {
               pageCont.style.display = "none";
               pageCont1.style.display = "none";
            }
         }

   function setPerPage(cnt)
   {
      document.getElementById('perPage').value = cnt;
   }
   
   function setStyleOnOff(elem, styleClass){ //sets a particular css class On or Off for an element

            if(typeof(elem) == 'string'){
               //if we pass id instead of object handle:
               elem = document.getElementById(elem);
            }
            if(elem==null){return false;}
            if(elem.className.indexOf(styleClass) < 0) {
               elem.className += " "+styleClass;
            }
            else {
               elem.className = elem.className.replace(styleClass, '');
            }
         }

         function setStyleOnOffDiv(elem, styleClass, onOff){ //sets a particular css class On or Off for an element

            if(typeof(elem) == 'string'){
               //if we pass id instead of object handle:
               elem = document.getElementById(elem);
            }

            if(elem!=null && elem.className.indexOf(styleClass) < 0 && onOff==1 ) {
               elem.className += " "+styleClass;
            }
            else if(elem!=null && elem.className.indexOf(styleClass) >= 0 && onOff==0) {
               elem.className = elem.className.replace(styleClass, '');
            }
         }

         function gotoProbe(rowElem){
         //in probes listings - makes the table row a link to the product from

            var anArr = rowElem.getElementsByTagName("a");

            for(var i=0; i < anArr.length; i++ ){
               if(anArr[i].className.indexOf('prodName')>=0){
                  //location.href = siteURL+anArr[i].href;
                  anArr[i].href = anArr[i].href.replace('newsitems/', '');
                  anArr[i].href = anArr[i].href.replace('products/', '');
                  location.href = anArr[i].href;
               }
            }
         }
		 
		 function switchStyle(newOwner, styleClass){
         // putting all html elements similar to the newOwner element
         // and within its parent container in a Suspects Array
            var suspArr = newOwner.parentNode.parentNode.getElementsByTagName(newOwner.tagName);
            var curOwner = '';

            for(var i=0; i < suspArr.length; i++ ){
               if(suspArr[i].className.indexOf(styleClass)>=0){
                  curOwner = suspArr[i];
               }
            }

            setStyleOnOff(curOwner, styleClass); // disabling the style in current owner
            setStyleOnOff(newOwner, styleClass); // enabling the style in the new owner

         }
		 
		 function showPage(anchHandle, idPrefix, styleClass) {

         // this relies on being triggered from <a> elements
         // which contain only number of the page to show

            var pageNum = anchHandle.innerHTML;
            var pageElem = document.getElementById(idPrefix + pageNum);

            switchStyle(pageElem, styleClass);

         }
		 
		 function mirror(startElem) {
            var pairParent = startElem.parentNode.parentNode.parentNode;
            var pairMirror = document.getElementById(pairParent.getAttribute('pair'));

            if(pairMirror==null)
       {
              var pairParent = startElem.parentNode.parentNode;
              var pairMirror = document.getElementById(pairParent.getAttribute('pair'));

       }

            var pArr = pairParent.getElementsByTagName(startElem.tagName);
            var mArr = pairMirror.getElementsByTagName(startElem.tagName);

            for(var i=0; i < pArr.length; i++ ){
               oElem = pArr[i];
               mElem = mArr[i];
               if(oElem.tagName == mElem.tagName) {
                  mElem.className = oElem.className;
               }
            }
         }
		 
		 function switchPage(startElem, pIdPrefix, pSwClass, brSwClass) {
         // startElem - element that triggered the function; contains number of rel. page to show
         // pIdPrefix - text prefix of page-item
         // pSwClass -  page class to switch
         // brSwClass - pagination class to switch
           if(pIdPrefix!=null)
      {
        showPage(startElem, pIdPrefix, pSwClass);
      }
      switchStyle(startElem, brSwClass);
          mirror(startElem);
         }

         function nextPage(startElem, pIdPrefix, pSwClass, brSwClass) {
            var suspArr = startElem.parentNode.parentNode.getElementsByTagName(startElem.tagName);

            for(var i=0; i < suspArr.length; i++ ){
               if(suspArr[i].className.indexOf(brSwClass)>=0){
                  if(i!=parseInt(suspArr.length -1)){
                     switchStyle(suspArr[i+1], brSwClass);        // switches styles in pagination between N and N+1
                     showPage(suspArr[i+1], pIdPrefix, pSwClass); // makes the relevant page visible
                  }else {
                     // switches from last to first
                     switchStyle(suspArr[1], brSwClass);
                     showPage(suspArr[1], pIdPrefix, pSwClass);
                  }

                  mirror(startElem);
                  break;
               }
            }

         }
