// JavaScript Document
function toUpperCase(id, element) {
    document.getElementById(id).value = element.toUpperCase();
}

//    when the object gains focus by the user
function handleFocus(element, value)  {
     if (element.value == value) {
           element.value = '';
           element.style.color = '#000';
     }
} 

//    when a user loses focus of a form element
function handleBlur(element, value) {
      if (element.value == '') {
            element.value = value;
            element.style.color = '#505050';
      }
}

function settozero(element, value) {
      if (element.value == '') {
            element.value = value;
      }
      
      if (element.value == ' ') {
            element.value = value;
      }
}

function setValue(element) {
                                                                                                
    var pathstr = element.value;
    
    pathstr.replace('-', '');                                                                             
    
    element.value = pathstr;
    
}

function calcTiles() {
                  
      var totalTiledArea = 0;
      
      for (i=1;i<5;i++)
        {         
          var lengthmetre = parseFloat(document.getElementById('wall' + i + 'lengthmetres').value);
          var lengthcms = parseFloat(document.getElementById('wall' + i + 'lengthcms').value);            
          var heightmetre = parseFloat(document.getElementById('wall' + i + 'heightmetres').value);
          var heightcms = parseFloat(document.getElementById('wall' + i + 'heightcms').value);
          
          if ((lengthmetre > 0 && heightmetre > 0) || (lengthcms > 0 && heightcms > 0)) {
                        
            var finalLength = lengthmetre + (lengthcms * 0.01);
            var finalHeight = heightmetre + (heightcms * 0.01);
            
            if (lengthcms > 0 && heightcms > 0) {
                var finalSize = (finalLength * finalHeight);
                finalSize = finalSize.toFixed(2);
            } else {
                
                var finalSize = Math.round(finalLength * finalHeight);
            }
            
            var totalTiledArea = parseFloat(totalTiledArea) + parseFloat(finalSize);
            
            document.getElementById('wall' + i + 'area').innerHTML = finalSize + ' sq mtrs';
          }
      }
      
      //alert(totalTiledArea);
                      
      if (totalTiledArea > 0) {
          var tilespermetre = document.getElementById('tilespermetre').value;
          var costpermetre = document.getElementById('costper100').value;
          
          var finalcost = (totalTiledArea * costpermetre);
                                                
          var finalprice = finalcost;
                          
          document.getElementById('tiledarea').innerHTML = totalTiledArea+' m<sup>2</sup>'; 
          document.getElementById('tilecost').innerHTML = '&pound;' + finalprice.toFixed(2) + ' (inc VAT)';                        

          //round numbers up to whole tile
          var decimal = (totalTiledArea.toString().indexOf('.'));
          if (decimal > -1) {
            var finalNumberTiles = totalTiledArea * tilespermetre
            //document.getElementById('numberoftiles').innerHTML = finalNumberTiles.toFixed(2);  
            document.getElementById('numberoftiles').innerHTML = Math.ceil(finalNumberTiles);
            
          } else {
             var finalNumberTiles = totalTiledArea * tilespermetre
             document.getElementById('numberoftiles').innerHTML = Math.ceil(finalNumberTiles);
          }
          
                
          document.getElementById('errormessage').style.display = 'none';
          document.getElementById('calcresults').style.display = 'inline';
            
      
        } else {
            
            document.getElementById('errormessage').innerHTML = 'Please make sure you have entered a width and height which is greater than 0.';
            document.getElementById('errormessage').style.display = 'inline';
            document.getElementById('calcresults').style.display = 'none';
      
      }
      
} 

function addOrder(stockitemid, metrescheck, producttype){                        
    var metres = id('metres'+stockitemid).value;
    if (metres == '' || metres == 0) { alert("Please enter the number of metres you require."); return; }
    
    var qty=1;
    var qtytype;
    var product = id('product'+stockitemid).value;
    var productcode = id('productcode'+stockitemid).value;            
    var productimage = id('productimage'+stockitemid).value;
        
    var size = id('productsize'+stockitemid).value;
                  
    if (producttype != 'SAMPLE_FOC' && producttype != 'SAMPLE_TILE') {
        if (metres > 0) qty = metres;                 
    }
    
    if (qty > 1) qtytype = qtytype+'s';        
    $.post('inc-ajax.php', {                    
            'mode': 'ADD_ORDER_LINE',
            'product': product,
            'productcode': productcode,
            'stockitemid': stockitemid,
            'productimage': productimage,
            'size': size,
            'qty': qty,
            'qtytype': qtytype,
            'producttype': producttype              
        }, 
        function(data) {               
            if (data.error != undefined){
                alert(data.error);
            } else {                 
                if (readCookie("POSTCODE") == null) {
                    window.location = '/postcode-check/';
                } else {                              
                    id('header-shopping-basket').innerHTML = data.shoppingBasketHTML;
                    showNotification('<span class="red-text">Shopping Basket</span><br /><br />'+data.orderItem+' has been added to your basket.');                
                }
            }
        },'json');                    
}
//submit filters and reload page
function submitFilters() {
      document.getElementById("filters").submit();
      document.body.style.cursor='wait';
      //pageloaded();
}



function mouseX(evt) {
      if (!evt) evt = window.event; 
      if (evt.pageX) return evt.pageX; 
      else if (evt.clientX) return evt.clientX + (document.documentElement.scrollLeft ?  document.documentElement.scrollLeft : document.body.scrollLeft); 
      else return 0;
}

function mouseY(evt) {
      if (!evt) evt = window.event; 
      if (evt.pageY) return evt.pageY; 
      else if (evt.clientY) return evt.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop); 
      else return 0;
}

function followInfoText(evt) {
      var offX = 15;       // X offset from mouse position
      var offY = -50;         // Y offset from mouse position      
      
      if (document.getElementById) {
            var obj = document.getElementById('infoDiv').style;                   
            obj.left = (parseInt(mouseX(evt))+offX) + 'px';
            obj.top = (parseInt(mouseY(evt))+offY) + 'px';            
      }
 
}
function show_infoDiv(evt, text) {      
      //offX = -(w / 2);
      document.onmousemove=followInfoText; 
       
      document.getElementById('infoDiv').style.width= 'auto';
      document.getElementById('infoDiv').style.visibility='visible'; 
      document.getElementById('infoDiv').innerHTML=text;            
}
function hide_infoDiv() {
      document.getElementById('infoDiv').style.visibility='hidden';
      document.onmousemove=mouseY;
}


function createCookie(name,value,secs) {
	if (secs) {
		var date = new Date();
		date.setTime(date.getTime()+(secs*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

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 eraseCookie(name) {
	createCookie(name,"",-1);
} 

function id(element) {
   return document.getElementById(element);
}

function showNotification(notificationtext){
    jQuery.noticeAdd({
            text: notificationtext,
            stay: false
    });
}

// function showNotification(notificationtext){
//     $.gritter.add({
//         title: 'Shopping Basket',
// 		text: notificationtext,
// 		image: '',
// 		sticky: false,
// 		time: 800
// 	});
// 
// 	return false;
// }

function isNumeric(evt) {
    var charCode = (evt.which) ? evt.which : event.keyCode
    
    if (charCode != 46) {
        if (charCode > 31 && (charCode < 48 || charCode > 57)) return false;
    }

    return true;
}

var hoursVisible = false;

function toggleOpeningHours() {

    var p = $("a#show-opening-hours");

    var position = p.offset();

    

    if (!hoursVisible) {

        document.getElementById("extended-opening-times").style.left = (position.left - 80) + "px";

        document.getElementById("extended-opening-times").style.top = (position.top + 17) + "px"; /*"143px"; */

        $("#extended-opening-times").slideToggle();

        $("#show-opening-hours").html("Hide Christmas opening time &gt;");                

    }

    else {

        $("#extended-opening-times").slideToggle();

        $("#show-opening-hours").html("Show Christmas opening time &gt;");

    }

    hoursVisible = !hoursVisible;

}
