﻿/*global ActiveXObject, Effect*/
var $advJson, $qDefault, $advDefault, $newsItems = [], $index = 0, $list = null, $tNews = null;

$qDefault = "Enter SKU";
$advDefault = "Enter keywords";

function addListener(element, type, expression, bubbling){
  bubbling = bubbling || false;
  if(window.addEventListener) { // Standard
    element.addEventListener(type, expression, bubbling);
    return true;
  } else if(window.attachEvent) { // IE  
    element[type+expression]=function(e){expression(e, element);};
    element.attachEvent('on' + type, element[type+expression]);
    return true;
  } else {
    return false;
  }
}

function removeListener(element, type, expression, bubbling){
  bubbling = bubbling || false;
  if(window.removeEventListener) { // Standard
    element.removeEventListener(type, expression, bubbling);
    return true;
  }else if(window.detachEvent) {
    element.detachEvent('on'+type, element[type+expression]);
    element[type+expression] = null;
    return true;
  }else{
    return false;
  }
}

function entity(str, mode) {
	str = (str) ? str : "";
	mode = (mode) ? mode : "string";

	var e = document.createElement("div");
	e.innerHTML = str;

	if (mode === "numeric") {
		return "&#" + e.innerHTML.charCodeAt(0) + ";";
	}
	else if (mode === "utf16") {
		var un = e.innerHTML.charCodeAt(0).toString(16);
		while (un.length < 4) {un = "0" + un;}
		return "\\u" + un;
	}
	else {return e.innerHTML;}
}

function getLoadingDiv(){
  var $loading;
  $loading = document.createElement("div");
  $loading.className="loading";
  
  var $loadingInner = document.createElement("div");
  $loading.appendChild($loadingInner);
     
  return $loading;
}

function clearNode($obj){
  if ($obj!==null && $obj.parentNode!==null){
    var $new = $obj.cloneNode(false);
    $obj.parentNode.replaceChild($new, $obj);    
    return $new;
  }else{
    return $obj;
  }
}

function removeElement($el){
  $el.parentNode.removeChild($el);
}

Array.prototype.contains=function($str){
  var $blFound = false;
  for (var i = 0;i<this.length;i+=1){
       if($str===this[i]){
      $blFound=true;
    }
  }
  return $blFound;
};

Object.prototype.nextObject = function() {
var n = this;
do {n = n.nextSibling;}
while (n && n.nodeType !== 1);
return n;
};

Object.prototype.previousObject = function() {
var p = this;
do {p = p.previousSibling;}
while (p && p.nodeType !== 1);
return p;
};

Object.prototype.getName=function(){
  var $str = this.toSource();
  if(typeof $str === "string"){
    return $str.match(/^[^{]*\{([^:]+):/)[1];
  }
};

String.prototype.rTrim = function(){
    var $whitespace = " \t\n\r";
    var $s = this;
    if ($whitespace.indexOf(this.charAt(this.length-1)) !== -1) {
    var i = $s.length - 1;       // Get length of string
    while (i >= 0 && $whitespace.indexOf($s.charAt(i)) !== -1) { i-=1; }
      $s = $s.substring(0, i+1);
    }
    return $s;
};

String.prototype.escapeHTML = function(){
   return this.replace("<", "&lt;").replace(">", "&gt;").replace("'", "&#39;");
};

String.prototype.unescapeHTML = function(){
   return this.replace("&lt;", "<").replace("&gt;", ">").replace("&#39;", "'");
};

String.prototype.lTrim = function(){
  var $whitespace = " \t\n\r";
  var $s = this;
  if($whitespace.indexOf(this.charAt(0)) !==-1){
  var $i = 0;
  while($whitespace.indexOf($s.charAt($i)) !== -1 && $i<$s.length){$i+=1;}
  $s = $s.substring($i, $s.length);
  }
  return $s;
};

String.prototype.trim=function(){return this.rTrim().lTrim();};

function removeTableColumn($table, $columnIndex){
var i=null;
  if ($table!==null && $table.rows.length > 0){
    if($table.rows[0].cells.length > $columnIndex){
      for(i=0;i<$table.rows.length;i+=1){
        $table.rows[i].removeChild($table.rows[i].cells[$columnIndex]); 
      }  
    }
  }
}

function removeTableRow($row){
  if($row.tagName !== undefined && $row.tagName.toLowerCase() === "tr"){
    removeElement($row);
  }
}

/* ----------- Advanced Searching ----------------------- */

function sortByName(a,b){
  var x = a.Name.toLowerCase();
  var y = b.Name.toLowerCase();
  return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}

function clearSelect($select){
  for(var i=$select.options.length-1;i>=0;i-=1){
    $select.removeChild($select.options[i]);
  }
}

function updateManfs(e, $src){

  $src = $src || this;

  var $arrSelected = [], i, j, k, l, m, $manu = [], $options = [], $manSelect = null, 
  $selects = document.getElementsByTagName("select");
  
  for (i=0; i<$selects.length;i+=1){
    if ($selects[i].id.match(/manfLB$/)){
      $manSelect = $selects[i];
    }  
  }

  if($manSelect!==null){  
    for (j=0; j<$src.length; j+=1){
      if ($src.options[j].selected){
        $arrSelected[$arrSelected.length]= 'p' + $src.options[j].value;
      }
    }
  
    if (($arrSelected.length===0) || ($arrSelected[0] === "pAll")){
      $arrSelected = ["pAll"];
    }
  
    for (k=0; k<$arrSelected.length; k+=1){
      var $pg = $advJson.ProductGroups[$arrSelected[k]];
      if ($pg!==undefined && $pg.length>0){
        for(l=0;l<$pg.length; l+=1){
          var $exists = $manu.contains($pg[l].Name);
          if($exists===false){
            var $name = $pg[l].Name;
            $manu[$manu.length]= $name;
            $options[$options.length]= $pg[l];
          }  
        } 
      }      
    }

    clearSelect($manSelect);

    if($options.length===0){
      $manSelect.options[$manSelect.options.length] = new Option(":: None Available ::", "0", false, false);
    }else{ 
      $options.sort(sortByName);

      $manSelect.options[$manSelect.options.length] = new Option("All", "-1", false, false);
      for (m=0;m<$options.length;m+=1){
        $manSelect.options[$manSelect.options.length] = new Option($options[m].Name, $options[m].ID, false, false);
      }  
    }
  }
}

function advOnload(){
  var $selects = document.getElementsByTagName("select"), i;
  for (i=0; i<$selects.length;i+=1){
    if ($selects[i].id.match(/productsLB$/)){
      addListener($selects[i], "change", updateManfs, false);
    }  
  }
}

/* ----------- AJAX Scripts -------------------------- */

function advanced_stateChange($req){
    // if xmlhttp shows "loaded"

    if ($req.readyState===4){
    // if "OK"
        if ($req.status===200){
            eval($req.responseText);
            advOnload();
        }
    }
}

function loadAdvanced(){
  var $req=null;
  if (window.XMLHttpRequest){
    $req = new XMLHttpRequest();
  }
  else if(window.ActiveXObject){
    $req = new ActiveXObject("Microsoft.XMLHTTP");
  }
  if ($req!==null){
    $req.open("POST","advancedSearchLoader.axd",true);
    $req.onreadystatechange=function(){advanced_stateChange($req);};
    $req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    $req.setRequestHeader("Content-length", 0);
    $req.setRequestHeader("Connection", "close");
    $req.send('');
  }
}
/*global $addToBasket */
function addToBasket_stateChange($req, $sku, $src){
    // if xmlhttp shows "loaded"
    if ($req.readyState===4){
    // if "OK"
        if ($req.status===200){
            eval($req.responseText);

           if(typeof($addToBasket) !== "undefined" && $addToBasket.Basket !== undefined){
             var $div = document.createElement("p");
             $div.className = "background";
             $div.id = $sku + "added";
             var $text = document.createTextNode($addToBasket.Result);
             $div.appendChild($text);
             $src.parentNode.appendChild($div);
             
             if ($addToBasket.Basket !== null){
               /*--- Update the basket summary ---*/
               
               var $content = document.createElement("div");
               $content.id = "basketContent";
               
               if($addToBasket.Basket.Products !== "0 products"){
                                   
                 $content.innerHTML = "<p class=\"left\">Your basket has <span id=\"spnProducts\">" +
                                      $addToBasket.Basket.Products + "</span> with a net value of <span id=\"spnTotal\">" +
                                      $addToBasket.Basket.Amount + "</span></p>";                                   
               }else{
                 $content.innerHTML = "<p>Please choose a QTY before clicking:</p><img alt=\"Add to basket\" src=\"/uk/images/layout/add.gif\"/>";
               } 
               
               var $current = document.getElementById("basketContent");
               
               if($current !== null){
                 $current.parentNode.replaceChild($content, $current);
               }               
             }              
           }
           $src.disabled = false;
           $src.value = "Add";
        }
    }
}

function addToBasket($sku, $qty, $src){
    var $req2=null;
    if (window.XMLHttpRequest){
        $req2 = new XMLHttpRequest();
    }
    else if(window.ActiveXObject){
        $req2 = new ActiveXObject("Microsoft.XMLHTTP");
    }
    if ($req2!==null){
        var $url;
        var $params = "sku=" + $sku + "&qty=" + $qty;
        $url = "addToBasket.axd";
        $req2.onreadystatechange= function(){addToBasket_stateChange($req2, $sku, $src);};
        $req2.open("POST",$url,true);
        $req2.setRequestHeader("Content-type", "application/x-www-form-urlencoded");     
        $req2.setRequestHeader("Content-length", $params.length);
        $req2.setRequestHeader("Connection", "close");
        $req2.send($params);
    }
}

function startClickLog($params){

    var req2 = null;
    if (window.XMLHttpRequest){
        req2 = new XMLHttpRequest();
    }
    else if(window.ActiveXObject){
        req2 = new ActiveXObject("Microsoft.XMLHTTP");
    }
    
    if (req2!==null){
        var $url;
        $url = "logClick.axd";
        req2.open("POST",$url,true);
        req2.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        req2.setRequestHeader("Content-length", $params.length);
        req2.setRequestHeader("Connection", "close");
        req2.send($params);
    }
}

/*function ping($host){
  var req2 = null, $params = null;
  
  if (window.XMLHttpRequest){
    req2 = new XMLHttpRequest();
  }
  else if(window.ActiveXObject){
    req2 = new ActiveXObject("Microsoft.XMLHTTP");
  }
    
  if (req2!==null){
    var $url;
    $url = "ping.axd";
    $params = "domain=" + $host;
    req2.open("POST",$url,false);
    req2.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    req2.setRequestHeader("Content-length", $params.length);
    req2.setRequestHeader("Connection", "close");
    req2.send($params);
       
    return req2.responseText === "1";
  }
}*/

function addLoadEvent(func) {
  addListener(window, "load", func, false);
}

function printPage(e, $src){

  $src = $src || this;

  window.print();

  if(e.preventDefault){
    e.preventDefault();
  }else{
    e.returnValue=false;
  }
}

function addPrint(){
  var $div = document.getElementById("divPrint");
  if($div!==null){
    var $btn = document.createElement("input");
    $btn.type="submit";
    $btn.id="btnPrint";
    $btn.value="Print Page";
    $btn.className="noprint submit";
    $div.appendChild($btn);
    addListener($btn, 'click', printPage, false);
  }
}

function pageChange(e, $src){
  $src = $src || this;
  
  var $page=$src.href.match(/&page=([0-9]+)/)[1], $old;

  if($page!==null){
    $old = document.aspnetForm.page.value;
    document.aspnetForm.page.value=$page;
    document.aspnetForm.submit();
    document.aspnetForm.page.value=$old;
    
    if(e.preventDefault){
      e.preventDefault();
    }else{
      e.returnValue = false;
    }  
  }
}

function wirePages(){
  
  var $obj, i, j;
  if(document.getElementById("gridHead")!==null){
    $obj = document.getElementById("gridHead").getElementsByTagName("a");
    for(i=0;i<$obj.length;i+=1){
      addListener($obj[j], "click", pageChange, false);
    }
  }
  if(document.getElementById("gridFoot")!==null){  
    $obj = document.getElementById("gridFoot").getElementsByTagName("a");
    for(j=0;j<$obj.length;j+=1){
      addListener($obj[j], "click", pageChange, false);
    }
  }
}

function btnAdd_Click(e, $src) {

  if(e.preventDefault){
    e.preventDefault();
  }else{
    e.returnValue=false;
  }  

  $src = $src || this;

  var $sku=null, $qty=null, i;
  var $arr = $src.parentNode.getElementsByTagName("input");
  for(i=0;i<$arr.length;i+=1){
    if ($arr[i].id.match("hdnSku")){
      $sku = $arr[i].value;
    }else if ($arr[i].id.match("txtQty")){
      $qty = $arr[i].value;
      if (! $qty.match(/^[\-]?[0-9]+$/)){
        $qty = null;
      }else{
        $arr[i].value=0;
        $arr[i].select();
      }
    }
  }
  
  if(document.getElementById($sku+"added")!==null){
    $src.parentNode.removeChild(document.getElementById($sku+"added"));
  }

  if(!($sku===null || $qty===null || $qty==="0")){
    $src.disabled = true;
    $src.value = "...";
    addToBasket($sku, $qty, $src);
  }

  if(e.preventDefault){
    e.preventDefault();
  }else{
    e.returnValue=false;
  }  
}

function txtQty_keypress(e, $src){

  $src = $src || this;

  var $char = null, $sub;
  
  if(e.which){
    $char = e.which;
  }else if(window.event){
    $char = e.keyCode;
  }
    
  if($char===13){
    $sub = document.getElementById($src.id.replace("txtQty", "btnAdd"));
    $sub.click();   
    if(e.preventDefault){
      e.preventDefault();
    }else{
      e.returnValue=false;
    }  
  }
}

function txtQty_Focus(e, $src){
  $src = $src || this;
  $src.select();
}

function wireAddButtons(){
  var $obj = document.getElementsByTagName("input"), i;
  for(i=0;i<$obj.length;i+=1){
    if($obj[i].id.match(/btnAdd$/)){
      addListener($obj[i], "click", btnAdd_Click, false);
    }else if($obj[i].id.match("txtQty")){
      addListener($obj[i], "keypress", txtQty_keypress, false);
      addListener($obj[i], "focus", txtQty_Focus, false);
    }   
  }
}

function removeFilter(e, $sender){
  $sender = $sender || this;
  var $type=null, $old, $old2;
  if($sender.text===undefined){
    if($sender.innerText.match("Product Group")!==null){
      $type="fgroups";
    }else if($sender.innerText.match("Manufacturer")!==null){
      $type="fmanf";
    }
  }else{ 
    if($sender.text.match("Product Group")!==null){
      $type="fgroups";
    }else if($sender.text.match("Manufacturer")!==null){
      $type="fmanf";
    }
  }
  if($type!==null){
    $old = document.aspnetForm.elements[$type].value;
    $old2=document.aspnetForm.page;
    document.aspnetForm.elements[$type].value="";
    document.aspnetForm.page.value="1";
    document.aspnetForm.submit();
    document.aspnetForm.elements[$type].value=$old;
    document.aspnetForm.page.value=$old2;
    
    if(e.preventDefault){
      e.preventDefault();
    }else{
      e.returnValue = false;
    }
    
  }
}

function addFilter($sender, $pId){
  var $hidden, $old, $new=null, $old2;
  $hidden=document.aspnetForm.elements[$pId];
  $old=$hidden.value;
  $old2=document.aspnetForm.page;
  
  $new = $sender.text || $sender.innerText;
  
  if($new!==null){
    $hidden.value = $new;
    document.aspnetForm.page.value="1";
    document.aspnetForm.submit();
    $hidden.value=$old;
    document.aspnetForm.page.value=$old2;
    return false;
  }else{
    return true;
  }
}

function wireFilters(){
  var $prods, $manf, i;

  if(document.getElementById("groups")!==null){
    $prods = document.getElementById("groups").getElementsByTagName("a");
    for (i=0;i<$prods.length;i+=1){
      $prods[i].onclick=function(){return addFilter(this, "fgroups");};
    }
  }
  if(document.getElementById("manf")!==null){
    $manf = document.getElementById("manf").getElementsByTagName("a");
    for (i=0;i<$manf.length;i+=1){
      $manf[i].onclick=function(){return addFilter(this, "fmanf");};
    }
  }
  if(document.getElementById("filters") !== null){
    var $filters = document.getElementById("filters").getElementsByTagName("a");
    for (i=0;i<$filters.length;i+=1){
      addListener($filters[i], "click", removeFilter, false);
    }
  }
}

function externalLinks(){
  var $links = document.getElementsByTagName('a'), i;
  for (i = 0;i<$links.length;i+=1){
    if($links[i].rel==='external'){
      $links[i].setAttribute('target', 'blank');
    }
  }
}

function productCheck_stateChange($req, $sku, $src){
  // if xmlhttp shows "loaded"
  if ($req.readyState===4){
  // if "OK"
    if ($req.status===200){
      if($req.responseText === "0"){
        var $p = document.getElementById("qRemark");
        if($p !== null){
          removeElement($p);
        }
        $p = document.createElement("p");
        $p.id = "qRemark";
        $p.innerHTML = $sku + " does not exist.";
        $src.parentNode.appendChild($p);              
      }else{
        window.location = "/uk/shop/product.aspx?product=" + $sku;
      }
      
      $src.disabled = false;  
    }else{
      window.location = "/uk/shop/product.aspx?product=" + $sku;
    }
  }
}


function qSearch(e, $src){
  
  var $search=null, $req = null, i, $url, $params;
  
  $src = $src || this;
  
  if(document.getElementById("leftNav")!==null){
    var $obj=document.getElementById("leftNav").getElementsByTagName('input');
      
    for (i=0;i<$obj.length;i+=1){
      if ($obj[i].id.match('qsearch') && $obj[i].type === "text"){
        $search = $obj[i];
      }
    }
  }

  
  if ($search!== null && ($search.value.rTrim() === "" || $search.value === $qDefault)){
    alert("Please enter a SKU");
    if(e.preventDefault){
      e.preventDefault();
    }else{
      e.returnValue=false;
    }  
  }else{
    
    if (window.XMLHttpRequest){
        $req = new XMLHttpRequest();
    }
    else if(window.ActiveXObject){
        $req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    if ($req!==null){
        $params = "sku=" + $search.value;
        $url = "checkProduct.axd";
        $req.onreadystatechange= function(){productCheck_stateChange($req, $search.value, $src);};
        $req.open("POST",$url,true);
        $req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");     
        $req.setRequestHeader("Content-length", $params.length);
        $req.setRequestHeader("Connection", "close");
        $req.send($params);
        
    if(e.preventDefault){
      e.preventDefault();
    }else{
      e.returnValue=false;
    }  
    $src.disabled = true;
    }
  } 
}

function qSearch_Focus(e, $src){

  $src = $src || this;

  if ($src.value === $qDefault){
    $src.value = "";
    $src.style.color = "#000";
  }else{
    $src.select();
  }
}

function qSearch_Blur(e, $src){

  $src = $src || this;

  if ($src.value.rTrim() === ""){
    $src.value = $qDefault;
    $src.style.color = "#5C5C5C";
  }
}

function advSearch(e, $src){
  
  var $left, $selects, $pg, $man, $groups=[], $manfs=[], $inputs, $search, i, $q;
  
  $src = $src || this;
  
  $left = document.getElementById('leftNav');
  
  if ($left !== undefined){
    $selects = $left.getElementsByTagName('select');

    for(i=0;i<$selects.length;i+=1){
      if ($selects[i].id.match('productsLB')){
        $pg = $selects[i];
      }else if($selects[i].id.match('manfLB')){
        $man = $selects[i];
      }
    }
    
    $inputs = $left.getElementsByTagName('input');
      
    for (i=0;i<$inputs.length;i+=1){
      if ($inputs[i].id.match('asearch') && $inputs[i].type === "text"){
        $search = $inputs[i];
      }
    }
  }

  if ($pg !== undefined){
    for(i=1;i<$pg.options.length;i+=1){
      if($pg.options[i].selected){
        $groups[$groups.length] = $pg.options[i].value;
      }
    }
  }
  
  if ($man !== undefined){
    for(i=1;i<$man.options.length;i+=1){
      if($man.options[i].selected){
        $manfs[$manfs.length] = $man.options[i].value;
      }
    }
  }
  
  if(e.preventDefault){
    e.preventDefault();
  }else{
    e.returnValue=false;
  }  
  
  if (($search.value.rTrim() === "" || $search.value === $advDefault) && 
      ($groups.length === 0) &&
      ($manfs.length === 0)){
    
    alert("Please enter a search term, select some product groups or manufacturers.");  
  }else{
      $q = [];
      if($search.value.rTrim().length > 0 && $search.value !== $advDefault){
        $q[$q.length] = 'keyword=' + $search.value.rTrim().escapeHTML();
      }
      
      if ($groups.length > 0){
        $q[$q.length] = 'productgroup=' + $groups.join(",");
      }
      if ($manfs.length > 0){
        $q[$q.length] = 'manufacturer=' + $manfs.join(",");
      }
      window.location = "/uk/shop/search.aspx?" + $q.join("&");
  }
  
}

function advSearch_Focus(e, $src){
  $src = $src || this;

  if ($src.value === $advDefault){
    $src.value = "";
    $src.style.color = "#000";
  }else{
    $src.select();
  }
}

function advSearch_Blur(e, $src){

  $src = $src || this;

  if ($src.value.rTrim() === ""){
    $src.value = $advDefault;
    $src.style.color = "#5C5C5C";
  }
}

function showHide($show, $hide){
    var $showClass = document.getElementById($show).className;
    var $hideClass = document.getElementById($hide).className;
    document.getElementById($show).className = $showClass.replace("hide", "").rTrim();
    document.getElementById($hide).className = $hideClass + " hide";
}

function insertAfter(node, referenceNode){
  if(referenceNode.nextSibling!==null){
    referenceNode.parentNode.insertBefore(node, referenceNode.nextSibling);
  }else{
    referenceNode.parentNode.appendChild(node);
  }
}

function logClick($loc, $ban){
  startClickLog("locId=" + $loc + "&banId=" + $ban);
}

/* ----------- Form Validation -------------------------- */

function valRequired($obj){
  if($obj.value.trim().length===0){
    return false;
  }else{
    return true;  
  }
}

function valEmail($obj){
 var $value = $obj.value;
 var $pattern = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
 if(!$pattern.test($value)){
   return false;
 }else{
   return true;
 }
}

function validate($obj){
  var $inputs = null, $bl=true, i, j, $classes, $par = null, $span = null;
  $inputs = document.getElementById($obj).getElementsByTagName("input");
  
  for (i=0;i<$inputs.length;i+=1){
    $par = $inputs[i].parentNode;
    if($par.childNodes[$par.childNodes.length - 1].className==="red"){
      removeElement($par.childNodes[$par.childNodes.length - 1]);
    }
    $classes = $inputs[i].className.split(" ");
    
    for(j=0;j<$classes.length;j+=1){
      switch($classes[j]){
        case "req": 
          if(!valRequired($inputs[i])){
            $span = document.createElement("span");
            $span.innerHTML = "Required.";
            $span.className="red";
            $inputs[i].parentNode.appendChild($span);
            $bl = false;
            
           } 
           break;
        case "email":
          if(!valEmail($inputs[i])){
            $span = document.createElement("span");
            $span.innerHTML = "<br />Must be an email address.";
            $span.className="red";
            $inputs[i].parentNode.appendChild($span);
            $bl = false;
          }
          break;           
        default: 
          break;
      }  
      if (!$bl){
        break;
      }
    }
  }
  return $bl;
}

function getElementsByClassName(className, tag, elm){
	var testClass = new RegExp("(^|\\\\s)" + className + "(\\\\s|$)"),
	    $tag = tag || "*",
	    $elm = elm || document,
	    elements = ($tag === "*" && $elm.all)? $elm.all : $elm.getElementsByTagName($tag),
	    returnElements = [], current, length = elements.length, i;
	for(i=0; i<length; i+=1){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements[returnElements.length] = current;
		}
	}
	return returnElements;
}

function removeLarge(e, $src){

  $src = $src || this;

  removeListener($src, "click", removeLarge, false);
  removeElement($src);
}

function showLarge(e, $src){

  $src = $src || this;

  var $div = document.createElement('div'),
      $large = document.createElement('img'),
      $title = document.createElement('div');
  $large.src = $src.src.replace('/products/', '/products/big/');
  $large.alt = $src.alt;
  $large.style.position="relative";
  
  $div.style.position="absolute";
  $div.style.top="180px";
  $div.style.left="250px";
  $div.style.backgroundColor="#FFFFFF";
  $div.style.border="2px solid #005093";
  
  $title.appendChild(document.createTextNode('Click to close'));
  $title.style.color = "#FFFFFF";
  $title.style.backgroundColor = "#005093";
  $title.style.position="relative";
  $title.style.width = "400px";
  $title.style.textAlign="center";
  $div.appendChild($title);
  $div.appendChild($large);
  
  $src.parentNode.appendChild($div);
  addListener($div, "click", removeLarge, false);
}

function largeImg(){

  var $img = document.getElementById("prodImg");
  if($img!==null){
    addListener($img, "click", showLarge, false);
    var $p = document.getElementById("imageMsg");
    if($p!==null){
     $p.appendChild(document.createTextNode('Click image to enlarge'));
     $p.style.textAlign = "center";
    }
  }
}

function removeImageColumn(e, $src){
  var $table, $index, i;
  
  $src = $src || this;

  if($src.value === "Images Off"){
    $table = document.getElementById("tblProds");
    
    if($table !== null){
      for(i = 0; i < $table.rows[0].cells.length; i += 1){
        if($table.rows[0].cells[i].id==="colImage"){
          $index = i;
          break;
        }
      }
      
      if($index!==undefined){
        removeTableColumn($table, $index);
        
        $src.value = "Images On";
        $src.className += " alt";
        
        var $req=null;
        if (window.XMLHttpRequest){
          $req = new XMLHttpRequest();
        }
        else if(window.ActiveXObject){
          $req = new ActiveXObject("Microsoft.XMLHTTP");
        }
        
        if ($req!==null){
          var $url;
          var $params = "showImage=0";
          $url = "userPrefs.axd";
          $req.open("POST",$url,true);
          $req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");     
          $req.setRequestHeader("Content-length", $params.length);
          $req.setRequestHeader("Connection", "close");
          $req.send($params);
          
          if(e.preventDefault){
            e.preventDefault();
          }else{
            e.returnValue=false;
          }  
        }
      }    
    }
  }  
}

function displayChanged_stateChanged($req){
  // if xmlhttp shows "loaded"
  if ($req.readyState===4){
  // if "OK"
    if ($req.status===200){
      window.location.reload(true);
    }
  }
}

function displayChanged(e, $src){

  $src = $src || this;
  
  var $req=null;
  if (window.XMLHttpRequest){
    $req = new XMLHttpRequest();
  }
  else if(window.ActiveXObject){
    $req = new ActiveXObject("Microsoft.XMLHTTP");
  }
  
  if ($req!==null){
    var $url;
    var $params = null;
    
    if ($src.id.match("perPage")){
      $params = "perPage=" + $src.options[$src.selectedIndex].value;
    }else if($src.id.match("sortBy")){
      $params = "order=" + $src.options[$src.selectedIndex].value;
    }
    
    if ($params !== null){
      $url = "userPrefs.axd";
      $req.open("POST",$url,true);
      $req.onreadystatechange= function(){displayChanged_stateChanged($req);};
      $req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");     
      $req.setRequestHeader("Content-length", $params.length);
      $req.setRequestHeader("Connection", "close");
      $req.send($params);
      
      var $selects = document.getElementById("gridHeader").getElementsByTagName("select"), i;
    
      for (i=0; i<$selects.length;i+=1){
        $selects[i].disabled = true;
      }
    }   
  } 
}




function animate() {
    //alert($newsItems.length);
    if (typeof (Effect) !== 'undefined') {

    var $indexRemove = $index === 0 ? $newsItems.length - 1 : $index - 1;
    var $indexAdd = $index === ($newsItems.length - 1) ? 0 : $index + 1;
    
    if(document.getElementById($newsItems[$indexAdd].id) === null){
      var $new = $newsItems[$indexAdd].toLi();
      $new.style.display="none";

      $list.appendChild($new);
    }

    Effect.BlindDown($newsItems[$indexAdd].id);
    Effect.BlindUp($newsItems[$indexRemove].id);
    $index = $indexAdd;
  }
}

function startAnimation(){
  if($tNews===null){
    $tNews = setInterval("animate()", 5000);
  }
}

function stopAnimation(){
  if($tNews!==null){
    clearTimeout($tNews);
    $tNews = null;
  }
}

function NewsItem(id, className, content){
  this.id = id;
  this.className = className;
  this.content = content;
  //ONLY CALLED IF PAGE LOADS
  this.toDiv = function(){
                   var $div = document.createElement("div");

                   if(this.id !== null){
                     $div.id = this.id;
                   }

                   if(this.className !== null){
                     $div.className = this.className;
                   }

                   $div.innerHTML = this.content;
                   return $div;
                 };
                 this.toLi = function() {
                     var $li = document.createElement("li");

                     if (this.id !== null) {
                         $li.id = this.id;
                     }

                     if (this.className !== null) {
                         $li.className = this.className;
                     }

                     addListener($li, "mouseover", stopAnimation, false);
                     addListener($li, "mouseout", startAnimation, false);
                     $li.innerHTML = this.content;
                     
                     return $li;
                 };                 
}

function wireNews() {

  /*var $news = null, $head = null, $script = null, $items = null, $i = null;
  
  $news = document.getElementById("news");
  if ($news !== null){
    if ($news.getElementsByTagName('ul') !== null){
      $list = $news.getElementsByTagName('ul')[0];
    }
    
    if ($list !== null){
      
      $list.className += $list.className ==="" ? "js" : " js"; 
      $items  = $list.getElementsByTagName("li");
      for($i=0;$i<$items.length;$i+=1){
        $newsItems[$newsItems.length] = new NewsItem($items[$i].id, $items[$i].className, $items[$i].innerHTML);
      }
      $list = clearNode($list);
      $list.appendChild($newsItems[0].toLi());
      $list.appendChild($newsItems[1].toLi());
      
      $index = 1;
      startAnimation();     
    }
  }*/
}

function updateSignupMesssage(msg, src){
      var $current = document.getElementById("signUpRes"), $p = document.createElement("p");
      $p.innerHTML = msg;
      $p.id = "signUpRes";
            
      if($current !== null){
        $current.parentNode.replaceChild($p,$current);
      }else{
        src.parentNode.appendChild($p);
      }

}

function eshotSignup_stateChanged($req, $src){
  // if xmlhttp shows "loaded"
  if ($req.readyState===4){
      // if "OK"

    if ($req.status===200){
      updateSignupMesssage($req.responseText, $src);
      var $email = document.getElementById($src.id.replace("Btn", ""));
      if($email !== null){
        $email.style.display = "none";
      }
    }else{
      updateSignupMesssage("Unable to subscribe, please try later.", $src);
      $src.disabled = false;
    }
  }
}

function eshotSignup(e, $src){
  
  var $email = null, $id = null,$req = null, $p = null, $current = null;

  $src = $src || this;
 
  $id = $src.id.replace("Btn", "");
  
  $email = document.getElementById($id);
  if($email !== null){

    if($email.value.rTrim() === ""){
      updateSignupMesssage("Please enter an email address", $src);
    }else if(!($email.value.match(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i))){           
      updateSignupMesssage("Please enter a valid email address", $src);      
    }else{
      if (window.XMLHttpRequest){
        $req = new XMLHttpRequest();
      }
      else if(window.ActiveXObject){
        $req = new ActiveXObject("Microsoft.XMLHTTP");
      }
  
      if ($req!==null){
        var $url;
        var $params = "subscription=1&email=" + $email.value;
                 
        if ($params !== null){
          $url = "subscribe.axd";
          $req.open("POST",$url,true);
          $req.onreadystatechange= function(){eshotSignup_stateChanged($req, $src);};
          $req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");     
          $req.setRequestHeader("Content-length", $params.length);
          $req.setRequestHeader("Connection", "close");
          $req.send($params);
          $src.disabled = true;
        }   
      }
    }
    
    if(e.preventDefault){
      e.preventDefault();
    }else{
      e.returnValue = false;
    }  
  } 
}

function toggleRSS(e, $src){

  $src = $src || this;
  
  var $feeds = document.getElementById('feedsBox');
  
  if($feeds === null){
  
    var $links = null, i, $text='';
    
    $links = document.getElementsByTagName("link");
    if ($links !== null){
      for (i=0;i<$links.length;i+=1){
        if($links[i].type==='application/atom+xml'){
          $text += '<li><a href="' + $links[i].href + '">'+ $links[i].title + '</a></li>';
        }
      }
      if($text.length > 0){
        $feeds = document.createElement('ul');
        $feeds.id = 'feedsBox';
        
        $feeds.innerHTML = $text;
        $src.appendChild($feeds);
        $src.style.borderStyle = 'inset';
        $src.style.borderColor = '#5C5C5C';
        $src.style.backgroundColor = '#FFF9E6';
      }
    }
  }else{  
    if($feeds.style.display === 'none'){
      $feeds.style.display = 'block';
      $src.style.borderStyle = 'inset';
      $src.style.borderColor = '#5C5C5C';
      $src.style.backgroundColor = '#FFF9E6';
    }else{
      $feeds.style.display = 'none';
      $src.style.borderStyle = 'solid';
      $src.style.borderColor = '#FFFFFF';
      $src.style.backgroundColor = '#FFFFFF';
    }
  }
}

function hookup(){

  var $ctrl = null,i;
    
  if(document.getElementById("leftNav")!==null){
    $ctrl = document.getElementById("leftNav").getElementsByTagName('input');
    
    for (i=0;i<$ctrl.length;i+=1){
      if ($ctrl[i].id.match('qsearch') && $ctrl[i].type === "text"){
        $ctrl[i].style.color = "#5C5C5C";
        $ctrl[i].value = $qDefault;
        addListener($ctrl[i], "focus", qSearch_Focus, false);
        addListener($ctrl[i], "blur", qSearch_Blur, false);
      }else if($ctrl[i].id.match('asearch') && $ctrl[i].type === "text"){
        $ctrl[i].style.color = "#5C5C5C";
        $ctrl[i].value = $advDefault;
        addListener($ctrl[i], "focus", advSearch_Focus, false);
        addListener($ctrl[i], "blur", advSearch_Blur, false);
      }else if($ctrl[i].id.match('quick') && $ctrl[i].type === "submit"){
        addListener($ctrl[i], "click", qSearch, false);
      }else if($ctrl[i].id.match('search') && $ctrl[i].type === "submit") {
        addListener($ctrl[i], "click", advSearch, false);
      }else if($ctrl[i].id.match(/signUpBtn$/) && $ctrl[i].type === "submit"){
        $ctrl[i].style.display = 'none';
        $ctrl[i].style.border = 'none';
        $ctrl[i].style.width = 0;
        addListener($ctrl[i], "click", eshotSignup, false);       
      }
    }
  }
      
  if(document.getElementById("gridHeader") !== null){  
    $ctrl = document.getElementById("gridHeader").getElementsByTagName("input");
    for (i=0;i<$ctrl.length;i+=1){
      if($ctrl[i].id.match("btnImage") && $ctrl[i].type==="submit"){
        addListener($ctrl[i],"click", removeImageColumn, false);
      }else if($ctrl[i].id.match("apply") && $ctrl[i].type==="submit"){
        $ctrl[i].style.display = "none";
      }
    }
  
    $ctrl = document.getElementById("gridHeader").getElementsByTagName("select");
    if ($ctrl !== null){
      for(i=0;i<$ctrl.length;i+=1){        
        if(($ctrl[i].id.match("perPage") || $ctrl[i].id.match("sortBy")) && $ctrl[i].type.match("select")){
          addListener($ctrl[i],"change", displayChanged, false);
        }
      }
    }
  }
    
  $ctrl = document.getElementById("rss");

  if($ctrl !== null){
    var $new = document.createElement("h1");
    $new.innerHTML = 'Subscribe to RSS';
    $ctrl.appendChild($new);
    addListener($ctrl, "click", toggleRSS, false);
  }  
  
  $ctrl = null;
  
  loadAdvanced();
  wireAddButtons();
  wireFilters();
  wirePages();
  externalLinks();
  wireNews();
  addPrint();    
}

addLoadEvent(hookup);

function lockButton() {

    document.getElementById("ctl00_ctl00_content1_Content1_btnSub").disabled = 'true';
}

function DisableControl_SetTimeout(interval) {
    setTimeout(lockButton(), interval);
}
var intI = 0;
function btnSubDisable() {

        if (intI > 0) {
            document.getElementById('ctl00_ctl00_content1_Content1_btnSub').disabled = true;
        }
        else {
            intI = 1;
        }
}


/*****BASKET TEMPLATE FUNCTIONS********/

function changeDisplayItems(sCtrl) {
    var element = document.getElementById(sCtrl);

    if (element.style.display == "block") {
        element.style.display = "none";
    }
    else {
        element.style.display = "block";
    }

    return false;
}

function changeDisplayItemsB(sCtrl, sImage) {
    var element = document.getElementById(sCtrl);

    if (element.style.display == "block") {
        element.style.display = "none";
        document.getElementById(sImage).src = "../../images/layout/showBelow.png";
    }
    else {
        element.style.display = "block";
        document.getElementById(sImage).src = "../../images/layout/showAbove.png";
    }

    return false;
}

function addQuickItem($sChannel, $sDiscount, $templateID) {
    var $sSku = document.getElementById('ctl00_ctl00_content1_Content1_txtQProduct').value;
    var $sQuantity = 'ctl00_ctl00_content1_Content1_txtQQuantity'
    var $sRowName = 'ctl00_ctl00_content1_Content1_trQSubmissionDetails';
    var $sLabelName = 'ctl00_ctl00_content1_Content1_lblQSubmissionDetails';

    if (document.getElementById($sQuantity).value == "") {
        document.getElementById($sRowName).style.display = "block";
        document.getElementById($sLabelName).innerText = "Invalid quantity added.";
    } else {
    if ($sSku == "") {
        document.getElementById($sRowName).style.display = "block";
        document.getElementById($sLabelName).innerText = "Invalid product SKU added.";
    } else {
    addItemTemplate($templateID, $sSku, $sQuantity, $sRowName, $sLabelName, $sChannel, $sDiscount);
    }
    }

    return false;
}

function addItemTemplate($templateid, $sSku, $sTextbox, $sRowName, $sLabelName, $sChannel, $sDiscount) {
    var $sQty = document.getElementById($sTextbox).value;
    
    var $req = null;
    if (window.XMLHttpRequest) {
        $req = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) {
        $req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    if ($req !== null) {
        var $params = "templateid=" + $templateid + "&sSku=" + $sSku + "&sQty=" + $sQty + "&sChannel=" + $sChannel + "&sDiscount=" + $sDiscount;
        $req.open("POST", "addtoBasketTemplate.axd", true);
        $req.onreadystatechange = function() { addItemTemplate_stateChange($req, $sRowName, $sLabelName); };
        $req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        $req.setRequestHeader("Content-length", $params.length);
        $req.setRequestHeader("Connection", "close");
        $req.send($params);
    }


    return false;
}

function addItemTemplate_stateChange($req, $sRowName, $sLabelName) {
    // if xmlhttp shows "loaded"
    var $sText = "";
    if ($req.readyState == 4) {
        // if "OK"
        if ($req.status == 200) {
            var sResult = $req.responseText;
            //alert(sResult);
            //alert($sRowName);
            document.getElementById($sRowName).style.display = "block";

            if (sResult == "ERROR") {
                $sText = "There has been an internal error and your request could not be completed. <br />Please try again later.";
            } else {
            if (sResult == "1") {
                $sText = "Item is added to your template.";
            } else if (sResult == "2") {
            $sText = "Product SKU does not exist.";
            }
            }

            document.getElementById($sLabelName).innerText = $sText;
        }
    }
}

function updateItem($sSku, $sTextBox, $iTemplateID) {
    //form.submit();
    var $sQty = document.getElementById($sTextBox).value;
    var $req = null;
    if (window.XMLHttpRequest) {
        $req = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) {
        $req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    if ($req !== null) {
        var $params = "templateid=" + $iTemplateID + "&sSku=" + $sSku + "&sQty=" + $sQty;

        $req.open("POST", "updateBasketTemplate.axd", true);
        $req.onreadystatechange = function() { updateItemTemplate_stateChange($req); };
        $req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        $req.setRequestHeader("Content-length", $params.length);
        $req.setRequestHeader("Connection", "close");
        $req.send($params);
    }

}

function deleteItem($sSku, $iTemplateID) {
    //form.submit();
    var $req = null;
    if (window.XMLHttpRequest) {
        $req = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) {
        $req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    if ($req !== null) {
        var $params = "templateid=" + $iTemplateID + "&sSku=" + $sSku + "&sQty=0";

        $req.open("POST", "updateBasketTemplate.axd", true);
        $req.onreadystatechange = function() { updateItemTemplate_stateChange($req); };
        $req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        $req.setRequestHeader("Content-length", $params.length);
        $req.setRequestHeader("Connection", "close");
        $req.send($params);
    }

}

function updateItemTemplate_stateChange($req) {
    // if xmlhttp shows "loaded"
    var $sText = "";
    if ($req.readyState == 4) {
        // if "OK"
        if ($req.status == 200) {
            var sResult = $req.responseText;
            //alert(sResult);
            //document.getElementById($sRowName).style.display = "block";

            if (sResult == "ERROR") {
                $sText = "There has been an internal error and your request could not be completed. Please try again later.";
            } else {
                if (sResult == "1") {
                    $sText = "You have updated the item in your template.";
                } else if (sResult == "2") {
                    $sText = "Product is no longer available.";
                }
            }

            alert($sText);
        }
    }
}

function updateBasket($sBasketID) {
    //form.submit();
    //alert($sBasketID);
    var $req = null;
    if (window.XMLHttpRequest) {
        $req = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) {
        $req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    if ($req !== null) {
        var $params = "sBasketID=" + $sBasketID;

        $req.open("POST", "updateBasketDetails.axd", true);
        $req.onreadystatechange = function() { updateBasket_stateChange($req); };
        $req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        $req.setRequestHeader("Content-length", $params.length);
        $req.setRequestHeader("Connection", "close");
        $req.send($params);
    }

}

function updateBasket_stateChange($req) {
    // if xmlhttp shows "loaded"
    var $sText = "";
    if ($req.readyState == 4) {
        // if "OK"
        if ($req.status == 200) {
            var sResult = $req.responseText;

            if (sResult == "ERROR") {
                $sText = "There has been an internal error and your request could not be completed. Please try again later.";
            } else {
            eval(sResult);

            if (typeof ($basketItems) !== "undefined" && $basketItems.Basket !== undefined) {
                
                    if ($basketItems.Basket !== null) {
                        /*--- Update the basket summary ---*/

                        var $content = document.createElement("div");
                        $content.id = "basketContent";

                        if ($basketItems.Basket.Products !== "0 products") {

                            $content.innerHTML = "<p class=\"left\">Your basket has <span id=\"spnProducts\">" +
                                          $basketItems.Basket.Products + "</span> with a net value of <span id=\"spnTotal\">" +
                                          $basketItems.Basket.Amount + "</span></p>";
                        } else {
                            $content.innerHTML = "<p>Please choose a QTY before clicking:</p><img alt=\"Add to basket\" src=\"/uk/images/layout/add.gif\"/>";
                        }

                        var $current = document.getElementById("basketContent");

                        if ($current !== null) {
                            $current.parentNode.replaceChild($content, $current);
                        }
                    }

                }

            }
        }
    }
}


function moveOrderUp($sTemplateItemID, $sTemplateID, $sUpdateRow) {
    //form.submit();
    //alert($sBasketID);
    var $req = null;
    if (window.XMLHttpRequest) {
        $req = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) {
        $req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    if ($req !== null) {
        var $params = "sBasketID=" + $sBasketID;

        $req.open("POST", "updateBasketDetails.axd", true);
        $req.onreadystatechange = function() { updateBasket_stateChange($req); };
        $req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        $req.setRequestHeader("Content-length", $params.length);
        $req.setRequestHeader("Connection", "close");
        $req.send($params);
    }

}

function showHideDefaultTemplateItems() {
    var element = document.getElementById('ctl00_ctl00_content1_Content1_dvDefaultTemplateItems');

    if (element.style.display == 'none') {
        element.style.display = 'block';
    } else {
    element.style.display = 'none';
    }
    
}

/*--------------APPLICATION FORM-----------------*/

function validateApplication() {
    var bResult = true;
    var element;
    var valelement;
    var sList = '';
    //FIRSTLY CHECK REQUIRED FIELDS
    element = document.getElementById("ctl00_ctl00_content1_Content1_txtCompanyName")

    if (element.value == '') {
        valelement = document.getElementById("dvCompanyNameVal");
        valelement.innerText = "Required";
        valelement.style.display = "block";
        bResult = false;
    } else {
        valelement = document.getElementById("dvCompanyNameVal");
        valelement.style.display = "none";
    }

    element = document.getElementById("ctl00_ctl00_content1_Content1_addReg_txtPC")

    if (element.value == '') {
        valelement = document.getElementById("dvRegAddress");
        valelement.innerText = "Required";
        valelement.style.display = "block";
        bResult = false;
    } else {
        valelement = document.getElementById("dvRegAddress");
        valelement.style.display = "none";
    }

    element = document.getElementById("ctl00_ctl00_content1_Content1_txtATelNum")

    if (element.value == '') {
        valelement = document.getElementById("dvAccountsTel");
        valelement.innerText = "Required";
        valelement.style.display = "block";
        bResult = false;
    } else {
        valelement = document.getElementById("dvAccountsTel");
        valelement.style.display = "none";
    }

    element = document.getElementById("ctl00_ctl00_content1_Content1_txtAccounts")

    if (element.value == '') {
        valelement = document.getElementById("dvAccountsContact");
        valelement.innerText = "Required";
        valelement.style.display = "block";
        bResult = false;
    } else {
        valelement = document.getElementById("dvAccountsContact");
        valelement.style.display = "none";
    }
    
    element = document.getElementById("ctl00_ctl00_content1_Content1_txtDirName1")
    var sString = element.value;
    element = document.getElementById("ctl00_ctl00_content1_Content1_txtDirName2")
    sString = sString + element.value;
    element = document.getElementById("ctl00_ctl00_content1_Content1_txtDirName3")
    sString = sString + element.value;
    
    if (sString == '') {
        valelement = document.getElementById("ctl00_ctl00_content1_Content1_dvDirName");
        valelement.innerText = "Required";
        valelement.style.display = "block";
        bResult = false;
    } else {
    valelement = document.getElementById("ctl00_ctl00_content1_Content1_dvDirName");
        valelement.style.display = "none";
    }


    element = document.getElementById("ctl00_ctl00_content1_Content1_txtEmailAddress")

    if (element.value == '') {
        valelement = document.getElementById("ctl00_ctl00_content1_Content1_dvEmailAddress");
        valelement.innerText = "Required";
        valelement.style.display = "block";
        bResult = false;
    } else {
    valelement = document.getElementById("ctl00_ctl00_content1_Content1_dvEmailAddress");
        valelement.style.display = "none";
    }

    element = document.getElementById("ctl00_ctl00_content1_Content1_txtTradeRef1")
    sString = element.value;

    if (sString == '') {
        valelement = document.getElementById("dvTradeRef");
        valelement.innerText = "Required";
        valelement.style.display = "block";
        bResult = false;
    } else {
        valelement = document.getElementById("dvTradeRef");
        valelement.style.display = "none";
    }


   /* element = document.getElementById("ctl00_ctl00_content1_Content1_txtNEmailAddress")

    if (element.value == '') {
        valelement = document.getElementById("dvPEmailAddress");
        valelement.innerText = "Required";
        valelement.style.display = "block";
        bResult = false;
    } else {
        valelement = document.getElementById("dvPEmailAddress");
        valelement.style.display = "none";
    }*/


    element = document.getElementById("ctl00_ctl00_content1_Content1_txtFullname")

    if (element.value == '') {
        valelement = document.getElementById("lblFullname");
        valelement.innerText = "Required";
        valelement.style.display = "block";
        bResult = false;
    } else {
        valelement = document.getElementById("lblFullname");
        valelement.style.display = "none";
    }

    element = document.getElementById("ctl00_ctl00_content1_Content1_txtTelNum")

    if (element.value == '') {
        valelement = document.getElementById("dvTelNo");
        valelement.innerText = "Required";
        valelement.style.display = "block";
        bResult = false;
    } else {
        valelement = document.getElementById("dvTelNo");
        valelement.style.display = "none";
    }

    element = document.getElementById("ctl00_ctl00_content1_Content1_txtCaptcha")

    if (element.value == '') {
        valelement = document.getElementById("lblCaptcha");
        valelement.innerText = "Required";
        valelement.style.display = "block";
        bResult = false;
    } else {
        valelement = document.getElementById("lblCaptcha");
        valelement.style.display = "none";
    }

    if (bResult == false) {
        document.getElementById("ctl00_ctl00_content1_Content1_dvValErrors").style.display = "block";
        document.getElementById("ctl00_ctl00_content1_Content1_dvValErrors").innerHTML = "<ul><li>There are required field missing.</li></ul>";
    }
    
    return bResult;

    }


    function updateCaptchaImge() {
        //form.submit();
        //alert($sBasketID);
        var $req = null;
        if (window.XMLHttpRequest) {
            $req = new XMLHttpRequest();
        }
        else if (window.ActiveXObject) {
            $req = new ActiveXObject("Microsoft.XMLHTTP");
        }
        if ($req !== null) {
            var $params = "locale=dev";

            $req.open("POST", "captchaImage.axd", true);
            $req.onreadystatechange = function() { updateCaptchaImge_stateChange($req); };
            $req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            $req.setRequestHeader("Content-length", $params.length);
            $req.setRequestHeader("Connection", "close");
            $req.send($params);
        }

    }

    function updateCaptchaImge_stateChange($req) {
        // if xmlhttp shows "loaded"
        var $sText = "";

        if ($req.readyState == 4) {
            // if "OK"
            if ($req.status == 200) {
                var sResult = $req.responseText;

                if (sResult == "ERROR") {
                    alert('loading captcha image failed/');
                } else {
                //alert(sResult);
                    var $sArray = sResult.split("::");
                    document.getElementById('imgCaptcha').src = "../images/" + $sArray[0];
                    document.getElementById('ctl00_ctl00_content1_Content1_hidCaptcha').value = $sArray[1];
                }
            }
        }
    }


    /******NEW News Animation***/
    var $iNewsCount = 0;
    var $bCont = true;
    var $bLoaded = false;
    var $bFaded = false;


    var iOpaticy = 1
    function fadeIn() {
        if (iOpaticy != 100) {
            setOpacity('dvNews', iOpaticy);
            iOpaticy += 1;

            if (iOpaticy < 100) {
                setTimeout("fadeIn()", 1);
            } else {
                setTimeout("fadeOut()", 5000);
            }
        }
    }

    function fadeOut() {

        if (iOpaticy != 0) {
            setOpacity('dvNews', iOpaticy);
            iOpaticy -= 1;

            if (iOpaticy > 0) {
                setTimeout("fadeOut()", 1);
            } else {
                getNews();
            }
        }
    }

    function setOpacity(eID, opacityLevel) {
        var eStyle = document.getElementById(eID).style;
        eStyle.opacity = opacityLevel / 100;
        eStyle.filter = 'alpha(opacity=' + opacityLevel + ')';
    }

    function getNews() {

        //fade("dvNews");
        if ($bCont == true) {
            var $req = null;
            if (window.XMLHttpRequest) {
                $req = new XMLHttpRequest();
            }
            else if (window.ActiveXObject) {
                $req = new ActiveXObject("Microsoft.XMLHTTP");
            }
            if ($req !== null) {
                var $params = "newscount=" + $iNewsCount;
                $req.open("POST", "newsManagement.axd", true);
                $req.onreadystatechange = function() { getNewNews_stateChange($req); };
                $req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                $req.setRequestHeader("Content-length", 0);
                $req.setRequestHeader("Connection", "close");
                $req.send($params);
            }
        }

        //return false;
    }

    function getNewNews_stateChange($req) {
        // if xmlhttp shows "loaded"
        if ($req.readyState == 4) {
            // if "OK"

            if ($req.status == 200) {
                var $sResult = $req.responseText;
                //
                if ($sResult == '0') {
                    document.getElementById("dvNews").innerHTML = "<p>No News Articles</p>";
                } else if ($sResult == 'ERROR') {
                    document.getElementById("dvNews").innerHTML = "<p>Error while loading news</p>";
                }
                else {
                    var $sArray = [];

                    $sArray = $sResult.split("::");

                    if ($sArray.length == 3) {
                        $newsItems = $sArray[1].split(",");
                        document.getElementById("dvNews").innerHTML = "<p><ul class='newsHeadline'>" + $sArray[0] + "</ul></p>";
                        //fade("dvNews");
                        $bLoaded = true;
                        $iNewsCount = $sArray[2];

                        if ($iNewsCount >= 0) {
                            fadeIn()
                        }
                    }
                    //startAnimation();

                    //setTimeout("fadeOut()", 5000);

                }

            }
        }
    }
