window.onload = initForm;

var map;

function initForm() {
  external_links();
  if(document.getElementById('delivery_country')) {
    document.getElementById('delivery_country').onchange = getShipping;       
  } 
  if(document.getElementById('delivery_country') && document.getElementById('delivery_country').value != '') { 
    getShipping();       
  }
  if(document.getElementById('mode_1')) {
    document.getElementById('order_by').onchange = order_by_normal;    
  }
  if(document.getElementById('reg_dateofbirth_day') && document.getElementById('reg_dateofbirth_month') && document.getElementById('reg_dateofbirth_year')) {
    document.getElementById('reg_dateofbirth_day').onfocus = clearfield;
    document.getElementById('reg_dateofbirth_day').onblur = reinstatefield;
    document.getElementById('reg_dateofbirth_month').onfocus = clearfield;
    document.getElementById('reg_dateofbirth_month').onblur = reinstatefield;
    document.getElementById('reg_dateofbirth_year').onfocus = clearfield;
    document.getElementById('reg_dateofbirth_year').onblur = reinstatefield;
  }
  if(document.getElementById('contact_map')) {
    initMap();    
  }
}

function insert_flash_object(objID, flashLocation, width, height, flashString) {
  var flashObject;
  flashObject = "<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0' width='" + width + "' height='" + height + "'>";
  flashObject = flashObject + "<param name='wmode' value='transparent' />";
  flashObject = flashObject + "<param name='movie' value='" + flashLocation + "' />";
  flashObject = flashObject + "<param name='quality' value='high' />";
  if(typeof(flashString) == "undefined") {
    flashObject = flashObject + "<embed src='" + flashLocation + "' quality='high' pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash' width='" + width + "' height='" + height + "' wmode='transparent'>";
  } else {
    flashObject = flashObject + "<param name='FlashVars' value='" + flashString + "' />";
    flashObject = flashObject + "<embed src='" + flashLocation + "' quality='high' pluginspage='http://www.macromedia.com/go/getflashplayer' type='application/x-shockwave-flash' width='" + width + "' height='" + height + "' wmode='transparent' ";
    flashObject = flashObject + "FlashVars='" + flashString + "'>";
  }
  flashObject = flashObject + "</embed></object>";
  if(document.getElementById(objID)) {
    document.getElementById(objID).innerHTML = flashObject;
  }
}

function external_links() {
  if(!document.getElementsByTagName) {
    return;
  } else {
    var anchors = document.getElementsByTagName("a"); 
    for(var i=0; i<anchors.length; i++) {
      var anchor = anchors[i]; 
      if(anchor.getAttribute("href") && anchor.getAttribute("rel") == "external" || anchor.getAttribute("rel") == "external nofollow") {
        anchor.target = "_blank";
      }
    }
  } 
}

function switch_product_image(image, title) { 
  var pImage;
  pImage = document.getElementById('product_image_src');
  pImage.src = 'images/products/main/' + image;
  pImage.title = title;
}

function reset_product_image(image, title) {
  var pImage;
  pImage = document.getElementById('product_image_src');
  pImage.src = 'images/products/main/' + image;
  pImage.title = title;
}

function getPrice(phpFile, objID) {
  var obj = document.getElementById(objID);
  var title = new Array();
  var value = new Array();
  xmlhttp.open("GET", phpFile);
  xmlhttp.onreadystatechange = function() {
    if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
      obj.innerHTML = xmlhttp.responseText;
      if(obj == 'delivery_menu') {
       document.getElementById('delivery_method').value = document.getElementById('shipping_menu').options[document.getElementById('shipping_menu').selectedIndex].value;
      }
    }
  }  
  xmlhttp.send(null);  
}

function updatePrice(prodID, menuID, variantType) {
  if(document.getElementById('variantsIDs_'+prodID)) {
    var variantsIDs = document.getElementById('variantsIDs').value;
    variantID = variantsIDs.split('|');
    var variantsValues = '';
    for(i=0; i<variantID.length; i++) {
      if(document.getElementById('option_' + variantID[i] + '_' + prodID)) {
        variantValue = document.getElementById('option_' + variantID[i] + '_' + prodID).value;   
        variantsValues = variantsValues + variantValue + "|";   
      }
    }   
  } 
  if(document.getElementById('globalVariantsIDs_'+prodID)) {
    var globalVariantsIDs = document.getElementById('globalVariantsIDs_'+prodID).value;
    globalVariantID = globalVariantsIDs.split('|');
    var globalVariantsValues = '';
    for(i=0; i<globalVariantID.length; i++) {
      if(document.getElementById('option_' + globalVariantID[i] + '_' + prodID)) {
        globalVariantValue = document.getElementById('option_' + globalVariantID[i] + '_' + prodID).value;
        globalVariantsValues = globalVariantsValues + globalVariantValue + "|";   
      }
    }           
  }       
  getPrice("logicajax/updateProductPrice.php?p=" + prodID + "&variantsIDs='" + variantsIDs + "'&globVariantsIDs='" + globalVariantsIDs
            + "'&variantsValues='" + variantsValues + "'&globVariantsValues='" + globalVariantsValues + "'", "product_price_" + prodID);
}

function getShipping() {
  var country = document.getElementById('delivery_country').value;
  if(document.getElementById('shipping_menu')) {
    var shippingID = document.getElementById('shipping_menu').options[document.getElementById('shipping_menu').selectedIndex].value;
  } else {
    var shippingID = null;
  }
  var subTotal = document.getElementById('sub_total').innerHTML;
  // Commented out as delivery and VAT included in price
  //getPrice("logicajax/shippingCharge.php?country=" + country + '&shippingID=' + shippingID + '&subTotal=' + subTotal, "delivery_menu");
}

function order_by_normal() {
  var section = document.getElementById('section').value;  
  window.location = 'shop.html?order=' + this.value;
  return true;
}

function toggleSelects() {
  var rv = -1;
  if(navigator.appName == 'Microsoft Internet Explorer') {
    var ua = navigator.userAgent;
    var re  = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
    if(re.exec(ua) != null) {
      rv = parseFloat(RegExp.$1);
    }
  }

  if(rv == 6) {
    for(var i = 0;i < document.forms.length;i++) {
      for(var e = 0;e < document.forms[i].length;e++) {
        if(document.forms[i].elements[e].tagName == 'SELECT') {
          if(document.forms[i].elements[e].style.visibility == 'hidden') {
            document.forms[i].elements[e].style.visibility = 'visible';
          } else {
            document.forms[i].elements[e].style.visibility = 'hidden';
          }
        }
      }
    }
  }
}

function clearfield() {
  switch(this.id) {
    case 'reg_dateofbirth_day':
      trimValue = trim(this.value.toLowerCase());
      if(trimValue == 'dd') {
        this.value = '';
      }
    break;
    case 'reg_dateofbirth_month':
      trimValue = trim(this.value.toLowerCase());
      if(trimValue == 'mm') {
        this.value = '';
      }
    break;
    case 'reg_dateofbirth_year':
      trimValue = trim(this.value.toLowerCase());
      if(trimValue == 'yyyy') {
        this.value = '';
      }
    break;
  }
}

function reinstatefield() {
  switch(this.id) {
    case 'reg_dateofbirth_day':
      trimValue = trim(this.value);
      if(trimValue == '') {
        this.value = 'dd';
      }
    break;
    case 'reg_dateofbirth_month':
      trimValue = trim(this.value);
      if(trimValue == '') {
        this.value = 'mm';
      }
    break;
    case 'reg_dateofbirth_year':
      trimValue = trim(this.value);
      if(trimValue == '') {
        this.value = 'yyyy';
      }
    break;
  }
}

function trim(str, chars) {
  return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
  chars = chars || "\\s";
  return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
  chars = chars || "\\s";
  return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function regenerateCaptcha(imageID, viewName) {
  xmlhttp.open("GET", "logicajax/generateCaptcha.php?imageid=" + imageID + "&viewname=" + viewName);
  xmlhttp.onreadystatechange = function() {
    if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
      document.getElementById(imageID).src = xmlhttp.responseText;
    }
  }  
  xmlhttp.send(null);
}

function displayOffice(office){
  switch(office) {
    case 1:
      //address = "<span class=\"b\">London</span><br/>\r\n";
      address = "Head Office<br/>\r\n";
      address = address + "Great West House (GWH1)<br/>\r\n";
      address = address + "Brentford<br/>\r\n";
      address = address + "TW8 9DF<br/>\r\n";
      address = address + "Phone 0845 122 0414<br/>\r\n";
      address = address + "Fax   0845 122 0415<br/>\r\n";
      officeTitle = "London";
      mapLink = "<a href=\"http://maps.google.co.uk/maps?hl=en&source=hp&q=Map+TW8+9DF&rlz=1W1GGLL_en-GB&um=1&ie=UTF-8&hq=&hnear=Brentford,+Middlesex+TW8+9DF&gl=uk&ei=hTvYStOPBseZjAfN2pjkCA&sa=X&oi=geocode_result&ct=title&resnum=1&ved=0CA8Q8gEwAA\" title=\"Get Directions\" target=\"blank\">Get Directions</a>\r\n";
      var latlng = new google.maps.LatLng(51.487543,-0.313252);
    break;
    case 2:
      //address = "<span class=\"b\">Newcastle</span><br/>\r\n";
      address = "Churchill House<br/>\r\n";
      address = address + "12 Mosley Street,<br/>\r\n";
      address = address + "Newcastle upon Tyne<br/>\r\n";
      address = address + "NE1 1DE<br/>\r\n";
      address = address + "Phone 0845 122 0414<br/>\r\n";
      address = address + "Fax   0845 122 0415<br/>\r\n";
      officeTitle = "Newcastle";
      mapLink = "<a href=\"http://maps.google.co.uk/maps?f=q&source=s_q&hl=en&geocode=&q=Churchill+House+12+Mosley+Street,+Newcastle+upon+Tyne+NE1+1DE&sll=53.800651,-4.064941&sspn=17.078368,39.506836&ie=UTF8&hq=&hnear=Churchill+House,+12+Mosley+St,+Newcastle+Upon+Tyne,+Tyne+And+Wear+NE1+1DE,+United+Kingdom&ll=54.97116,-1.60984&spn=0.00808,0.01929&t=h&z=16\" title=\"Get Directions\" target=\"blank\">Get Directions</a>\r\n";
      var latlng = new google.maps.LatLng(54.970875,-1.609868);
    break;
    case 3:
      //address = "<span class=\"b\">Yorkshire</span><br/>\r\n";
      address = "Commerce House,<br/>\r\n";
      address = address + "Paragon Street,<br/>\r\n";
      address = address + "HULL<br/>\r\n";
      address = address + "Humberside<br/>\r\n";
      address = address + "HU1 3PW<br/>\r\n";
      address = address + "Phone 0845 122 0414<br/>\r\n";
      address = address + "Fax   0845 122 0415<br/>\r\n";
      officeTitle = "Yorkshire";
      mapLink = "<a href=\"http://maps.google.co.uk/maps?f=q&source=s_q&hl=en&geocode=&q=62+Paragon+Street,+HULL+Humberside+HU1+3PW&sll=53.74446,-0.342464&sspn=0.005482,0.01929&ie=UTF8&hq=&hnear=62+Paragon+St,+Hull,+North+Humberside+HU1+3PW,+United+Kingdom&ll=53.7446,-0.342507&spn=0.01741,0.038581&t=h&z=16\" title=\"Get Directions\" target=\"blank\">Get Directions</a>\r\n";
      var latlng = new google.maps.LatLng(53.74446,-0.342464);
    break;
    case 4:
      //address = "<span class=\"b\">Birmingham</span><br/>\r\n";
      address = "Floor, 3 Brindley Place,<br/>\r\n";
      address = address + "Birmingham<br/>\r\n";
      address = address + "B1 2JB<br/>\r\n";
      address = address + "Phone 0845 122 0414<br/>\r\n";
      address = address + "Fax   0845 122 0415<br/>\r\n";
      officeTitle = "Birmingham";
      mapLink = "<a href=\"http://maps.google.co.uk/maps?f=q&source=s_q&hl=en&geocode=&q=3+Brindley+Place,+Birmingham+B1+2JB&sll=52.478807,-1.913166&sspn=0.008573,0.01929&ie=UTF8&hq=&hnear=3+Brindley+Pl,+Birmingham,+West+Midlands,+United+Kingdom&ll=52.478834,-1.913209&spn=0.008573,0.01929&t=h&z=16\" title=\"Get Directions\" target=\"blank\">Get Directions</a>\r\n";
      var latlng = new google.maps.LatLng(52.478807,-1.913166);
    break;
    case 5:
      //address = "<span class=\"b\">Southampton</span><br/>\r\n";
      address = "Capital House,<br/>\r\n";
      address = address + "No1, Houndwell Place,<br/>\r\n";
      address = address + "Southampton,<br/>\r\n";
      address = address + "SO14 1HU<br/>\r\n";
      address = address + "Phone 0845 122 0414<br/>\r\n";
      address = address + "Fax   0845 122 0415<br/>\r\n";
      officeTitle = "Southampton";
      mapLink = "<a href=\"http://maps.google.co.uk/maps?f=q&source=s_q&hl=en&geocode=&q=1+Houndwell+Place,+Southampton,+SO14+1HU&sll=50.902239,-1.398782&sspn=0.011015,0.038581&ie=UTF8&hq=&hnear=1+Houndwell+Pl,+Southampton+SO14+1HU,+United+Kingdom&ll=50.9026,-1.398654&spn=0.018566,0.038581&t=h&z=16\" title=\"Get Directions\" target=\"blank\">Get Directions</a>\r\n";
      var latlng = new google.maps.LatLng(50.902239,-1.398782);
    break;
    case 6:
      //address = "<span class=\"b\">Surrey</span><br/>\r\n";
      address = "Abbey Business Centre,<br/>\r\n";
      address = address + "25 Clarendon Road,<br/>\r\n";
      address = address + "Redhill,<br/>\r\n";
      address = address + "Surrey<br/>\r\n";
      address = address + "RH1 1QZ<br/>\r\n";
      address = address + "Phone 0845 122 0414<br/>\r\n";
      address = address + "Fax   0845 122 0415<br/>\r\n";
      officeTitle = "Surrey";
      mapLink = "<a href=\"http://maps.google.co.uk/maps?f=q&source=s_q&hl=en&geocode=&q=25+Clarendon+Road,+Redhill,+Surrey+RH1+1QZ&sll=51.242468,-0.169022&sspn=0.008812,0.01929&ie=UTF8&hq=&hnear=25+Clarendon+Rd,+Redhill,+Surrey+RH1+1,+United+Kingdom&ll=51.242683,-0.169215&spn=0.008812,0.01929&t=h&z=16\" title=\"Get Directions\" target=\"blank\">Get Directions</a>\r\n";
      var latlng = new google.maps.LatLng(51.242683,-0.169215);
    break;
  }
  if(document.getElementById('contact_address_address')) { 
    document.getElementById('contact_address_address').innerHTML = '<div class=\"b\">'+officeTitle+'</div>'+address + mapLink;      
  }
  if(document.getElementById('contact_map')) {                                
    var contentString = '<div>'+address+'</div>';
    
    var infowindow = new google.maps.InfoWindow({
        content: contentString
    });

    var marker = new google.maps.Marker({
        position: latlng,
        map: map,
        title: officeTitle+' Office'
    });

    google.maps.event.addListener(marker, 'click', function() {
      infowindow.open(map,marker);
    });
    
    map.panTo(latlng);
    map.setZoom(14);      
  }
}

function initMap(){
  var latlng = new google.maps.LatLng(51.487543,-0.313252);
  var myOptions = {
    zoom: 14,
    center: latlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };
  map = new google.maps.Map(document.getElementById("contact_map"), myOptions);
  
  var contentString = '<div>'+
      '<span class=\"b\">London</span><br/>\r\n'+
      'Head Office<br/>\r\n'+
      'Great West House (GWH1)<br/>\r\n'+
      'Brentford<br/>\r\n'+
      'TW8 9DF<br/>\r\n'+
      'Phone 0845 122 0414<br/>\r\n'+
      'Fax   0845 122 0415<br/>\r\n'+
      '</div>';

  var infowindow = new google.maps.InfoWindow({
      content: contentString
  });

  var marker = new google.maps.Marker({
      position: latlng,
      map: map,
      title:"London Office"
  });

  google.maps.event.addListener(marker, 'click', function() {
    infowindow.open(map,marker);
  });
}

function confirmFileDelete(fileId) { 
  if(confirm("Are you sure you want to delete this file?")) {
    window.location = 'action.php?view=my-files&action=delete&fileid=' + fileId;
    return true; 
  } else { 
    return false; 
  } 
}
