/* base.js starts */
/* <script> /* */

// hide firebug console calls from other browsers
if (!("console" in window) || !("firebug" in console)) {
  var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];
  window.console = {};
  for (var i = 0; i < names.length; ++i)
    window.console[names[i]] = function() {
  }
}
// set default uri
if (!base_url) var base_url = '/';
// tell me that useragent has javascript enabled
window.addEvent('domready', function() {
  $E('body').addClass('hasJs');
});

if (typeof $E != 'function') {
  function $E(input) {
    var elms = $$(input);
    if (elms[0]) {
      return elms[0];
    }
    else if (elms.tagName) {
      return elms;
    }
    else {
      return null;
    }
  }
}

// MAKE ALL EXTERNAL LINKS OPEN IS NEW TAB/WINDOW
window.addEvent('domready', function() {
  if (!document.getElementsByTagName) return;
  var anchors = $$("a");
  for (var i = 0; i < anchors.length; i++) {
    var anchor = anchors[i];
    if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external") {
      anchor.target = "_blank";
    }
  }
});

// load accordions
window.addEvent('domready', function() {
  var accordion, togglers, content;
  if (accordion = $$('.accordion')) {
    for (var i = 0; i < accordion.length; i++) {
      togglers = $$('#' + accordion[i].id + ' .toggler');
      content = $$('#' + accordion[i].id + ' .content');
      new Accordion(togglers, content, {
        show: -1,
        alwaysHide: true,
        opacity: false
      });
    }
  }
  
  // faqs specific accordion
  if (accordion = $$('#faqs')) {
    for (var i = 0; i < accordion.length; i++) {
      togglers = $$('#faqs h2');
      content = $$('#faqs p');
      new Accordion(togglers, content, {
        show: -1,
        alwaysHide: true,
        opacity: false
      });
    }
  }
});

// load featured artist on homepage
window.addEvent('domready', function() {
  if ($('featured_media')) {
    var img = $E('#featured_media img').src;
    var file = $E('#featured_media a').rel;
    var artist = $E('#featured_media img').alt;
    var link = $E('#featured_media a').href;
    
    var vars = 'baseURL=' + base_url + 'swf/mediaplayer/&file=' + file + '&image=' + img + '&artist=' + artist + '&link=' + link + '&frontcolor=0xE21A22&height=257&width=417';
    var FO = {
      movie: base_url + "swf/mediaplayer/bootstrap.swf",
      width: "100%",
      height: "294",
      bgcolor: '000000',
      wmode: 'transparent',
      allowfullscreen: true,
      allowscriptaccess: 'always',
      flashvars: vars,
      majorversion: "9",
      build: "0",
      xi: "true",
      ximovie: base_url + "swf/ufo.swf"
    };
    UFO.create(FO, "featured_media");
  }
});

window.addEvent('domready', function() {
  if ($('hitdisc_link')) {
    var FO = {
      movie: base_url + "swf/home_images.swf",
      width: "100%",
      height: "138",
      bgcolor: '000000',
      wmode: 'transparent',
      majorversion: "9",
      build: "0",
      xi: "true",
      ximovie: base_url + "swf/ufo.swf"
    };
    UFO.create(FO, "hitdisc_link");
  }
});

// load carosel
window.addEvent('domready', function() {
  if ($('carousel')) {

    // get volume / track numbers
    var numberClasses = $('carousel').className.split(' ');
    var volume = null;
    var track = null;
    if (numberClasses[0]) volume = numberClasses[0].split('_')[1];
    if (numberClasses[1]) track = numberClasses[1].split('_')[1];

    
    var vars = 'baseURL='+base_url+'&xmlURL='+base_url+'hitdisc/volume/'+volume+'&volume='+volume+'&track='+track;

    var FO = {
      movie: base_url + "swf/carosel.swf",
      width: "100%",
      height: "560",
      flashvars: vars,
      wmode: 'transparent',
      //allowfullscreen: true,
      majorversion: "9",
      build: "0",
      xi: "true",
      ximovie: base_url + "swf/ufo.swf"
    };
    UFO.create(FO, "carousel");
  }
});

// load team swf's
window.addEvent('domready', function() {
  // audio player buttons
  var team = $$('#team .description img');
  for (var i = 0; i < team.length; i++) {
    // load new player
    var FO = {
      movie: base_url + "swf/" + team[i].alt,
      width: "159",
      height: "208",
      wmode: 'transparent',
      majorversion: "9",
      build: "0",
      xi: "true",
      ximovie: base_url + "swf/ufo.swf"
    };
    UFO.create(FO, team[i].parentNode.id);
  }
});

// search players
window.addEvent('domready', function() {
  // audio player buttons
  var audio = $$('.PlayAudio');
  for (var i = 0; i < audio.length; i++) {
    audio[i].addEvent('click', function() {
      if ($('audioPlayer')) closeMP3(); // remove any existing audio players
      if ($('videoPlayer')) closeVideo(); // remove any existing video players
      // load new player
      var FO = {
        movie: base_url + "swf/mp3_player.swf",
        width: "320",
        height: "85",
        id: 'audioPlayer',
        wmode: 'transparent',
        flashvars: 'mp3_url=' + this.alt,
        allowscriptaccess: 'always',
        majorversion: "9",
        build: "0",
        xi: "true",
        ximovie: base_url + "swf/ufo.swf"
      };
      UFO.create(FO, this.getNext().id);
    });
  }
  
  // video player buttons
  var video = $$('.PlayVideo');
  for (var i = 0; i < video.length; i++) {
    video[i].addEvent('click', function() {
      
      if ($('audioPlayer')) closeMP3(); // remove any existing players
      if ($('videoPlayer')) closeVideo(); // remove any existing players
      var vars = 'baseURL=' + base_url + 'swf/mediaplayer/&file=' + this.alt + '&frontcolor=0xE21A22&height=257&width=417';
      var transp = !Browser.Engine.trident6 == true ? 'transparent' : ''; // opaque
      // load new player
      var FO = {
        movie: base_url + "swf/mediaplayer/bootstrap_cat.swf",
        width: "430",
        height: "272",
        id: 'videoPlayer',
        wmode: transp,
        bgcolor: '000000',
        allowfullscreen: true,
        allowscriptaccess: 'always',
        flashvars: vars,
        majorversion: "9",
        build: "0",
        xi: "true",
        ximovie: base_url + "swf/ufo.swf"
      };
      UFO.create(FO, this.getNext().id);
    });
  }
  
  // open description
  $$('a.openDesc img').each(function(el){
    $(el).addEvent('click', function(event){
      $$('div.description.active').each(function(el){
        $(el).removeClass('active')
      });// close others
      $(this.parentNode).getNext().addClass('active');
      event.stop();
    });
  });
  
  // close description
  $$('div.description a.close').each(function(el){
    $(el).addEvent('click', function(event){
      $(this.parentNode).removeClass('active');
      event.stop();
    });
  });
  
});

// close audio player
function closeMP3() {
  if (Browser.Engine.trident) {
    $('audioPlayer').parentNode.removeChild($('audioPlayer')); // stupid IE hack
  }
  else {
		if ($('audioPlayer').remove) {
			$('audioPlayer').remove();
		}
		else {
			$($('audioPlayer').parentNode).empty();
		}
  }
}

// close video player
function closeVideo() {
  if (Browser.Engine.trident) {
    $('videoPlayer').parentNode.destroy(); // stupid IE hack
  }
  else {
    $('videoPlayer').destroy();
  }
}

function closeVid() {
  closeVideo();
} 

// flash compatibility
// load hitdisc header swf
window.addEvent('domready', function() {
  var img;
  if (img = $E('#funding-details img.flash')) {
    var FO = {
      movie: base_url + "swf/hitdisc_about.swf",
      width: "529",
      height: "193",
      flashvars: 'baseURL=' + base_url,
      wmode: 'transparent',
      majorversion: "9",
      build: "0",
      xi: "true",
      ximovie: base_url + "swf/ufo.swf"
    };
    UFO.create(FO, img.parentNode.id);
  }
});

window.addEvent('domready', function() {
  var openers = $$('table.results tbody tr');
  for (var i = 0; i < openers.length; i++) {
    if ($(openers[i]).getNext()) {
      $(openers[i]).addEvent('click', function(e) {
        // close open desc
        var opened = $$('tr.liner div.active');
        if (opened[0]) {
          $(opened[0]).removeClass('active');
        }
        // open new desc
        $(this).getNext().addClass('active');
        e.preventDefault();
      });
      // close buttons
      $(openers[i]).getNext().getLast().addEvent('click', function(e) {
        $(this).getParent().removeClass('active');
        e.preventDefault();
      });
    }
  }
});

// do very basic validation before upload
var audioLabel = '';
window.addEvent('domready', function() {

  // mark funding options that have already been applied for
  var select;
  if (select = $('application_type')) {
    for (var i = 0; i < select.options.length; i++) {
      for (var j = 0; j < already_applied_for.length; j++) {
        if (already_applied_for[j] == select.options[i].value) {
          select.options[i].addClass('applied');
        }
      }
    }
  }
  
  var audio = $$('#application_form input[type="file"]');
  if (audio[0]) {
    $(audio[0].form).addEvent('submit', function(e) {
      var field = $('audio');
      var file = field.value.split('.');
      var ext = file[file.length - 1];
			
			var select;
		  if (select = $('application_type')) {
		    for (var i = 0; i < select.options.length; i++) {
		      if (select.options[select.selectedIndex].value == '0') {
		        $(select).getPrevious().addClass('error');
		        // stop form submitting
		        e.preventDefault();
		        error = true;
		      }
					else {
						$(select).getPrevious().removeClass('error');
					}
		    }
		  }
      
      if (!ext) {
        field.getPrevious().addClass('error');
        // stop form submitting
        e.preventDefault();
      }
      else if (ext.toLowerCase() != 'mp3' && ext.toLowerCase() != 'wma' && ext.toLowerCase() != 'm4a') {
        e.preventDefault();
        field.getPrevious().addClass('error');
        if (audioLabel == '') {
          audioLabel = field.getPrevious().innerHTML;
        }
        field.getPrevious().empty();
        field.getPrevious().appendText('Audio: must be in mp3, m4a or wma format, not .' + ext);
      }
      else {
        field.getPrevious().removeClass('error');
        if (audioLabel != '') {
          field.getPrevious().empty();
          field.getPrevious().appendText(audioLabel);
        }
        $E('button.submit').value = 'uploading... please wait. This may take some time';
        $('uploading').setStyle('display', 'block');
      }
      
      // check other inputs
      var inputs = $$('#application_form input, #application_form textarea');
      var error = false;
      for (var i = 0; i < inputs.length; i++) {
        if (inputs[i].type == 'file' || inputs[i].type == 'submit' || $(inputs[i]).getPrevious() == null) continue;

        if (inputs[i].type == 'checkbox') {
            
          if (inputs[i].checked == false) {
            $(inputs[i]).addClass('error');
            $(inputs[i]).getNext().addClass('error');
          }
          else {
            $(inputs[i]).removeClass('error');
            $(inputs[i]).getNext().removeClass('error');
          }
        }
        else if (inputs[i].tagName.toLowerCase() == 'input' && inputs[i].value == '') {
          $(inputs[i]).getPrevious().addClass('error');
          // stop form submitting
          e.preventDefault();
          error = true;
        }
				else if (inputs[i].tagName.toLowerCase() == 'textarea') {
					if (inputs[i].value.length > 300) {
						$(inputs[i]).getPrevious().addClass('error');
	          // stop form submitting
	          e.preventDefault();
	          error = true;
					}
					else {
						$(inputs[i]).getPrevious().removeClass('error');
					}
				}
        else {
          $(inputs[i]).getPrevious().removeClass('error');
        }
      }
      
      // check Funding Type against already applied array
      if (already_applied_for) {
        var errorText = ' - sorry You can only apply once per funding round';
        var select = $('application_type');
        for (i = 0; i < already_applied_for.length; i++) {
          if (already_applied_for[i] == select.options[select.selectedIndex].value) {
            // stop form submitting
            e.preventDefault();
            error = true;
            
            if ($(select.getPrevious()).hasClass('error')) break;
            
            $(select.getPrevious()).appendText(errorText);
            $(select.getPrevious()).toggleClass('error');
            break;
          }
          else {
            if ($(select.getPrevious()).hasClass('error')) {
              $(select.getPrevious()).innerHTML = $(select.getPrevious()).innerHTML.replace(errorText, '');
              $(select.getPrevious()).toggleClass('error');
              error = false;
            }
          }
        }
      }
      
      // reset submit button
      if (error == true) {
        $E('button.submit').value = 'Apply Now';
        $('uploading').setStyle('display','none');
      }
    });
  }
});

// hide bio field for video funding applications
window.addEvent('domready', function() {
      
  if ($('application_type')) {
    // add change action
	  $('application_type').addEvent('change', function(){
      console.log($(this.options[this.selectedIndex]).get('text'))
      var checkType = $(this.options[this.selectedIndex]).get('text').split(' ')[1];
      
      if ($('bio')) {
        if (checkType.toLowerCase() == 'video') {
            $('bio').setStyle('display','none');
            $('bio').getPrevious().setStyle('display','none');
        }
        else {
          $('bio').setStyle('display','block');
          $('bio').getPrevious().setStyle('display','block');
        }
      }
	  });
    // set default
    var checkType = $($('application_type').options[$('application_type').selectedIndex]).get('text').split(' ')[1];
    if ($('bio')) {
      if (checkType.toLowerCase() == 'video') {
          $('bio').setStyle('display','none');
          $('bio').getPrevious().setStyle('display','none');
      }
      else {
        $('bio').setStyle('display','block');
        $('bio').getPrevious().setStyle('display','block');
      }
    }
  }
});


// delete button confirm
window.addEvent('domready', function() {
	var input;
  if (input = $('bio')) {
		input.addEvent('keyup', function(event){
			max_length = 255;
			
			if (this.value.length > max_length) {
		  	if (event.code >= 49 && event.code <= 90 || event.code == 32) {
		  		event.stop();
		  		return this.value = this.value.substring(0, max_length);
		  	}
	    }
		});
	}
});

// delete button confirm
window.addEvent('domready', function() {
  var delBtns = $$('.delete');
  for (var i = 0; i < delBtns.length; i++) {
    delBtns[i].onclick = function() {
      return confirm(this.title ? this.title : 'Delete?');
    };
  }
});


/* LOAD sIFR */
/*var clarenden = {
 src: base_url + 'js/sifr/flash/sifr.swf'
 };
 sIFR.domains = ['*.kiwihits.co.nz','kiwihits.co.nz'] // Don't check for domains in this demo
 //sIFR.useStyleCheck = true;
 sIFR.useDomLoaded = true;
 //sIFR.repaintOnResize = true;
 //sIFR.transparent = true;
 //sIFR.selectable = true;
 sIFR.activate(clarenden);
 sIFR.fromLocal = true;
 sIFR.debug.ratios({
 src: '/kiwihits/js/sifr/flash/sifr.swf',
 selector: 'h1'
 });*/
// google analytics version 2
window.addEvent('domready', function() {
  if (typeof _gat != "undefined") {
    var pageTracker = _gat._getTracker("UA-1299072-18");
    pageTracker._initData();
    pageTracker._trackPageview();
  }
});


/* IE 6 FIXES */
window.addEvent('domready', function() {
  // exit if IE 7 or not IE at all
  if (!Browser.Engine.trident || Browser.Engine.version>4) return false;
  // set path to spacer image
  var spacer = base_url + 'images/spacer.png'; // 8-bit transparent png
  // get all images on page
  var images = $$('img[src$=".png"]');
  // loop through images
  for (var i = 0; i < images.length; i++) {
    // if image is png, load transparency
    if (images[i].src.indexOf('.png') != -1) {
      // stop image from collapsing if no width/height set
      images[i].setStyle('width', images[i].width + 'px');
      images[i].setStyle('height', images[i].height + 'px');
      // apply alpha
      images[i].setStyle('filter', 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="' + images[i].src + '", sizingMethod="image")');
      // hide src image
      images[i].src = spacer;
    }
  }
});

window.addEvent('domready', function() {

  if ($('video_gallery')) {

	  $('content').setStyle('overflow','visible');
	  
    var FO = {
      movie: base_url + "swf/tv/base.swf",
      width: "100%",
      height: "750",
    //  flashvars: vars,
      wmode: 'transparent',
      allowfullscreen: true,
      majorversion: "9",
      build: "0",
      xi: "true",
      ximovie: base_url + "swf/ufo.swf"
    };
    
    UFO.create(FO, "video_gallery");
    
  }
});

window.addEvent('domready', function() {

  if ($('showcase_video')) {

    var FO = {
      movie: base_url + "swf/tinyPlayer.swf",
      width: "200",
      height: "150",
      flashvars: 'SOURCE=' + base_url + 'files/media/showcase.flv',
      wmode: 'transparent',
      allowfullscreen: true,
      majorversion: "9",
      build: "0",
      xi: "true",
      ximovie: base_url + "swf/ufo.swf"
    };
    
    UFO.create(FO, "showcase_video");
    
  }
});


window.addEvent('domready', function() {
  var form;
  if (form = $('hitdisc_application')) {
    $(form).addEvent('submit', function(e){
      var error = false;
      var errors;
      var inputs = $$('#hitdisc_application input');
      for (var i=0; i<inputs.length; i++) {
        // test for a value - all fields are required
        if (inputs[i].value=='') {
          // error
          $(inputs[i]).addClass('error');
          $(inputs[i].getPrevious()).addClass('error');
          error = true;
          // e.preventDefault();
        }
        else if (inputs[i].id=='email' && inputs[i].value.test(/^[a-z0-9-\._]{1,}@+[a-z0-9]{1,}[a-z0-9-_\.]{1,}[a-z0-9]\.[a-z0-9]{2,}$/)==false) {
          $(inputs[i]).addClass('error');
          $(inputs[i].getPrevious()).addClass('error');
          error = true;
        }
        else {
          // no error
          $(inputs[i]).removeClass('error');
          $(inputs[i].getPrevious()).removeClass('error');
        }
        
        // check file types
        if (inputs[i].type.toLowerCase()=='file') {
          reg = new RegExp('(allowed_type_)([a-zA-Z0-9\-]{3,})'); // find allowed types in classname (eg: allowed_type_jpg-png-gif)
          if (type_string = inputs[i].className.match(reg)) {
            types = type_string[2].split('-');// allowed types
            for (var j=0; j<types.length; j++) {
              // test file.ext matches allowed type
              
              // alert(inputs[i].id +' = '+ inputs[i].value.test(new RegExp(types[j])));
              
              if (inputs[i].value.toLowerCase().test(new RegExp(types[j]))) {
                // passed
                $(inputs[i]).removeClass('error');
                $(inputs[i].getPrevious()).removeClass('error');
                break;
              }
              else {
                // error
                $(inputs[i]).addClass('error');
                $(inputs[i].getPrevious()).addClass('error');
                error = true;
                inputs[i].id;
              }
            }
          }
          else {
            // console.log('no match');
          }
        }
      }
      
      // exit if errors exist
      errors = $$('input.error');
      if (errors.length>0) {
        e.preventDefault();
        return false;
      }
      
      // show uploading message on hitdisc application form
      $('uploading').setStyle('display', 'block');
    
    });
  }
});



