// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults
function externalLinks() {
  if (!document.getElementsByTagName) return;
  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.target = "_blank";
      anchor.title = (anchor.title != "") ? anchor.title+" (opens in a new window)" : "opens in a new window";
      anchor.className = (anchor.className != '') ? anchor.className+' external' : 'external';
    }
  }
}
window.onload = externalLinks;

function previewContent(frm, actn) {
        prev_actn = frm.action;
        frm.target = "_blank";
        frm.action = actn;
        frm.submit();
        frm.target = "";

        // reset action once window has been opened
        frm.action = prev_actn;
}

function BlindDownUnlessDown(id) {
        if (!Element.visible(id)) {
                Effect.BlindDown(id);
        }
}

String.prototype.trim = function() {
        // Strip leading and trailing white-space
        return this.replace(/^\s*|\s*$/g, "");
}

function auto_complete_on_select(element, product_id) {
  document.getElementById(element).value = product_id;
}

function previewContent(frm, actn) {
        prev_actn = frm.action;
        frm.target = "_blank";
        frm.action = actn;
        frm.submit();
        frm.target = "";

        // reset action once window has been opened
        frm.action = prev_actn;
}

function postcode_lookup(post_code_elem) {
  post_code = $F(post_code_elem);
  new Ajax.Updater({ success: 'addresses', failure: 'error' }, '/postcodes/lookup', {
                     parameters: 'post_code=' + post_code,
                     onComplete: function() { $('lookup_button').value = 'Complete my address'; }
                   });
}

function postcode_lookup_exact(select_elem) {
  unique_delivery_point = $F(select_elem);
  $('lookup_button').value = 'Processing...';
  new Ajax.Request('/postcodes/lookup_exact', {
                     parameters: 'unique_delivery_point=' + unique_delivery_point,
                     onComplete: function() {
                       $('lookup_button').value = 'Complete my address';
                       $('list').hide();
                     }
                   });

}

function show_colour_name(el, colour_name) {
        element = $(el);
        element.innerHTML = colour_name;
}

function toggleWhitelabelLink(wlId, wlIdToggle) {
   if (wlId.style.display == "none") {
       wlIdToggle.innerHTML = "show whitelabel configuration";
   } else {
      wlIdToggle.innerHTML = "hide whitelabel configuration";
   }
}

// Globals
// Major version of Flash required
var requiredMajorVersion = 7;
// Minor version of Flash required
var requiredMinorVersion = 0;
// Minor version of Flash required
var requiredRevision = 0;
function activateColourPicker() {

     jQuery('#gutter_colour').ColorPicker({
     onSubmit: function(hsb, hex, rgb) {
     jQuery('#gutter_colour').val(hex);
     },
     onBeforeShow: function () {
     jQuery(this).ColorPickerSetColor(this.value);
     }
     })
     .bind('keyup', function(){
     jQuery(this).ColorPickerSetColor(this.value);
     });

     jQuery('#backgrnd_colour').ColorPicker({
     onSubmit: function(hsb, hex, rgb) {
     jQuery('#backgrnd_colour').val(hex);
     },
     onBeforeShow: function () {
     jQuery(this).ColorPickerSetColor(this.value);
     }
     })
     .bind('keyup', function(){
     jQuery(this).ColorPickerSetColor(this.value);
     });

     jQuery('#link_colour').ColorPicker({
     onSubmit: function(hsb, hex, rgb) {
     jQuery('#link_colour').val(hex);
     },
     onBeforeShow: function () {
     jQuery(this).ColorPickerSetColor(this.value);
     }
     })
     .bind('keyup', function(){
     jQuery(this).ColorPickerSetColor(this.value);
     });

     jQuery('#header_colour').ColorPicker({
     onSubmit: function(hsb, hex, rgb) {
     jQuery('#header_colour').val(hex);
     },
     onBeforeShow: function () {
     jQuery(this).ColorPickerSetColor(this.value);
     }
     })
     .bind('keyup', function(){
     jQuery(this).ColorPickerSetColor(this.value);
     });

     jQuery('#accent_foreground_colour').ColorPicker({
     onSubmit: function(hsb, hex, rgb) {
     jQuery('#accent_foreground_colour').val(hex);
     },
     onBeforeShow: function () {
     jQuery(this).ColorPickerSetColor(this.value);
     }
     })
     .bind('keyup', function(){
     jQuery(this).ColorPickerSetColor(this.value);
     });

     jQuery('#accent_background_colour').ColorPicker({
     onSubmit: function(hsb, hex, rgb) {
     jQuery('#accent_background_colour').val(hex);
     },
     onBeforeShow: function () {
     jQuery(this).ColorPickerSetColor(this.value);
     }
     })
     .bind('keyup', function(){
     jQuery(this).ColorPickerSetColor(this.value);
     });

     jQuery('#text_colour').ColorPicker({
     onSubmit: function(hsb, hex, rgb) {
     jQuery('#text_colour').val(hex);
     },
     onBeforeShow: function () {
     jQuery(this).ColorPickerSetColor(this.value);
     }
     })
     .bind('keyup', function(){
     jQuery(this).ColorPickerSetColor(this.value);
     });

     jQuery('#widget_text_colour').ColorPicker({
     onSubmit: function(hsb, hex, rgb) {
     jQuery('#widget_text_colour').val(hex);
     },
     onBeforeShow: function () {
     jQuery(this).ColorPickerSetColor(this.value);
     }
     })
     .bind('keyup', function(){
     jQuery(this).ColorPickerSetColor(this.value);
     });

}

function updateDatafile(checkbox) {
    datafile = $('datafile');
    if (checkbox.value == 'h') {
        if (checkbox.checked) {
            datafile.value += 'h';
        }
        else {
            datafile.value = datafile.value.replace('h', '');
        }
    }
    if (checkbox.value == 'd') {
        if (checkbox.checked) {
            datafile.value += 'd';
        }
        else {
            datafile.value = datafile.value.replace('d', '');
        }
    }
    if (checkbox.value == 'c') {
        if (checkbox.checked) {
            datafile.value += 'c';
        }
        else {
            datafile.value = datafile.value.replace('c', '');
        }
    }
}

function mark_for_destroy(element, hide) {
    $(element).next('.should_destroy').value = 1;
    $(element).up('.' + hide).hide();
}
