var last_opened = null;

function padZeros(input,zeros) {
	var out = '';
	var zero_counts = (zeros-(input+'').length);
	for (var i=0;i<zero_counts;i++) out += '0';
	out += ''+input;
	return out;
}

function systemToggleSub ( which, color, element ) {

	if (document.getElementById(which).style.display=='block') {
		document.getElementById(which).style.display='';
		document.getElementById(which+'_opener').style.display='';
		if (color)
			document.getElementById(which).parentNode.parentNode.style.backgroundColor = '';
		if (last_opened!=null) {
			last_opened.style.color = '';
			last_opened.style.paddingLeft = '';
			last_opened.style.backgroundImage = '';
			last_opened.style.textDecoration = '';
			last_opened = null;
		}
			
	} else {
		document.getElementById(which).style.display='block';
		document.getElementById(which+'_opener').style.display='none';
		if (color)
			document.getElementById(which).parentNode.parentNode.style.backgroundColor = '#e4edf0';
		if (element) {
			last_opened = element;
			element.style.color = '#000000';
			element.style.paddingLeft = '0px';
			element.style.backgroundImage = 'none';
			element.style.textDecoration = 'none';
			element.blur();
		}
	}
	
}

function toggleSub ( which ) {
	
	if ((document.getElementById(which).style.display=='none')||(document.getElementById(which).style.display=='')) {
		document.getElementById(which).style.display='block';
		document.getElementById(which).parentNode.style.backgroundColor='#e4edf0';
		document.getElementById(which+'_lnk').parentNode.className = 'parts_links_act';
	} else {
		document.getElementById(which).style.display='';
		document.getElementById(which).parentNode.style.backgroundColor='';
		document.getElementById(which+'_lnk').parentNode.className = 'parts_links';
	}
}

function hideSub ( which ) {
	document.getElementById(which).style.display='';
	document.getElementById(which).parentNode.style.backgroundColor='';
	document.getElementById(which+'_lnk').innerHTML = 'Product Parts';
	document.getElementById(which+'_lnk').parentNode.className = 'parts_links';
	
}

function showLvl1Help_left () {
	document.getElementById('help_lvl1_left').style.display = 'block';
	
	if (navigator.appVersion.indexOf('MSIE 6')!=-1) {
		var dropdowns = document.getElementsByTagName('SELECT');
		for (var i=0;i<dropdowns.length;i++) {
			dropdowns[i].style.visibility = 'hidden';
		}
	}
}

function showLvl1Help_middle () {
	document.getElementById('help_lvl1_middle').style.display = 'block';

	if (navigator.appVersion.indexOf('MSIE 6')!=-1) {
		var dropdowns = document.getElementsByTagName('SELECT');
		for (var i=0;i<dropdowns.length;i++) {
			dropdowns[i].style.visibility = 'hidden';
		}
	}
}

function showLvl1Help_right () {
	document.getElementById('help_lvl1_right').style.display = 'block';

	/*
	if (navigator.appVersion.indexOf('MSIE 6')!=-1) {
		var dropdowns = document.getElementsByTagName('SELECT');
		for (var i=0;i<dropdowns.length;i++) {
			dropdowns[i].style.visibility = 'hidden';
		}
	}
	*/
}

function hideLvl1Help_left () {
	document.getElementById('help_lvl1_left').style.display = '';
	
	if (navigator.appVersion.indexOf('MSIE 6')!=-1) {
		var dropdowns = document.getElementsByTagName('SELECT');
		for (var i=0;i<dropdowns.length;i++) {
			dropdowns[i].style.visibility = 'visible';
		}
	}
}

function hideLvl1Help_middle () {
	document.getElementById('help_lvl1_middle').style.display = '';
	
	if (navigator.appVersion.indexOf('MSIE 6')!=-1) {
		var dropdowns = document.getElementsByTagName('SELECT');
		for (var i=0;i<dropdowns.length;i++) {
			dropdowns[i].style.visibility = 'visible';
		}
	}
}

function hideLvl1Help_right () {
	document.getElementById('help_lvl1_right').style.display = '';

	/*
	if (navigator.appVersion.indexOf('MSIE 6')!=-1) {
		var dropdowns = document.getElementsByTagName('SELECT');
		for (var i=0;i<dropdowns.length;i++) {
			dropdowns[i].style.display = 'inline';
		}
	}
	*/
}

function clearSelect( which ) {
	document.getElementById(which).length = 0;
}

function addToSelect(which, key, value) {
	document.getElementById(which).options[document.getElementById(which).length] = new Option(value, key);
}

function hiLite2ndDD () {
	document.getElementById('performance_head').className='warning';
	document.getElementById('performance').className='warning';
}

function flash_detection(required, max)	{
	var required_version = required;
	var max_version = max;
	var available_version = 0;

	if(typeof(navigator.plugins["Shockwave Flash"]) == "object") {
		var description = navigator.plugins["Shockwave Flash"].description;
		available_version = description.substr(16, (description.indexOf(".", 16) - 16));
	} else if(typeof(ActiveXObject) == "function") {
		for(var i = 2; i < (max_version + 1); i ++) {
			try {
                if(typeof(new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + i)) == "object") {
                   available_version = i;
                }
           }
           catch(error)
           {
           }
        }
    }

    return [available_version, required_version];
}

function writeSWF( swf, width, height ) {
    document.write(
  		'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="'+width+'" height="'+height+'">' +
        '<param name="movie" value="'+swf+'" />' +
        '<param name="quality" value="high" />' +
        '<param name="wmode" value="transparent" />' +
        '<embed src="'+swf+'" quality="high" wmode="transparent" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="'+width+'" height="'+height+'"></embed>' +
      '</object>'
		);
}


function writeFlash ( swf, fallback, width, height, wmode) {
	var flashver = flash_detection(6, 20);

	if (flashver[0] >= 7) {	
	//if (flashver[0] >= 20) {	
		document.write(
				'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="'+width+'" height="'+height+'">' +
         			'<param name="movie" value="'+swf+'" />' +
         			'<param name="bgcolor" value="#ffffff" />' +
         			'<param name="quality" value="high" />');
         			if (!wmode) {
                 	document.write('<param name="wmode" value="transparent" />');    
              }
   document.write('<embed id="flash" src="'+swf+'" bgcolor="#ffffff" quality="high" ');
            if (!wmode) {
              document.write('wmode="transparent"');
            } 
            document.write(' pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="'+width+'" height="'+height+'"></embed>' +
  				'</object>'
			);
	} else {
		if (swf.indexOf('feature2_uk.swf')!=-1) {
			document.getElementById('home_feature_2_container').style.display = 'none';
		} else {
			document.getElementById(fallback).style.display = 'block';
		}
	}
}

var preview_pages = 0;
var current_page = 0;
var ani_running = false;

function switchLeft(target, amount, ref) {
	if (ani_running) return;
	
	current_page--;
	
	if (current_page<0) {
		current_page = 0;
		return;
	}
	
	target = $(target);
	var left = parseInt(target.getStyle('left').replace(/px/,''));
	left += amount;
	ani_running = true;
	new Effect.Morph(target, {
		duration: 0.3,
		style: 'left:'+left+'px',
		afterFinish: function() {
			ani_running = false;
		}
	});
	$('switch_right').show();
	if (current_page==0) {
		$('switch_left').hide();
	}
}

function switchRight(target, amount, ref) {
	if (ani_running) return;

	current_page++;
	
	if (current_page>(preview_pages-2)) {
		current_page = (preview_pages-2);
		return;
	}
	
	target = $(target);
	ref = $(ref);
	var left = parseInt(target.getStyle('left').replace(/px/,''));
	left -= amount;
	ani_running = true;
	new Effect.Morph(target, {
		duration: 0.3,
		style: 'left:'+left+'px',
		afterFinish: function() {
			ani_running = false;
		}
	});
	$('switch_left').show();
	if (current_page==(preview_pages-2)) {
		$('switch_right').hide();
	}
}

function switchPDFLeft(target, amount, ref) {
	current_page--;
	
	if (current_page<0) {
		current_page = 0;
		return;
	}
	
	target = $(target);
	var left = parseInt(target.getStyle('left').replace(/px/,''));
	left += amount;
	target.setStyle({left:left+'px'});
	var curr_page_value = padZeros( (current_page)*2, 2 );
	if (curr_page_value=='00') curr_page_value = '01';
	$('curr_page').value = curr_page_value;
	
	$('switch_right').show();
	if (current_page==0) {
		$('switch_left').hide();
	}
}

function switchPDFRight(lnk_target, amount, ref) {
	current_page++;
	
	if ( (current_page*2) > preview_pages ) {
		current_page--;
		return;
	}
	
	lnk_target = $(lnk_target);
	
	var lft = parseInt(lnk_target.getStyle('left').replace(/px/,''));
	lft -= amount;
	lnk_target.setStyle({left:lft+'px'});
	var curr_page_value = padZeros( (current_page)*2, 2 );
	$('curr_page').value = curr_page_value;

	$('switch_left').show();
	if ((current_page*2)==preview_pages) {
		$('switch_right').hide();
	}
}

function switchToPDFPage(target, amount, ref) {
	if (preview_pages<=2) {
		$('curr_page').value = '01';
		return;
	}
	target = $(target);
	ref = $(ref);
	var page = parseInt(ref.value);
	if (page=='NaN') page = 0;

	current_page = (Math.floor(page/2)*2);
	if ( current_page > preview_pages ) {
		current_page = preview_pages;
	}
	if (current_page<0) {
		current_page = 0;
	}
	
	var left = parseInt(target.getStyle('left').replace(/px/,''));
	left = -(amount*Math.floor(current_page/2));
	
	target.setStyle({left:left+'px'});
	var curr_page_value = padZeros( current_page, 2 );
	if (curr_page_value=='00') {
		$('curr_page').value = '01';
	} else {
		$('curr_page').value = curr_page_value;
	}

	$('switch_left').show();
	$('switch_right').show();
	if (current_page==preview_pages) {
		$('switch_right').hide();
	}
	if (current_page==0) {
		$('switch_left').hide();
	}
	
	current_page = Math.floor(current_page/2);
}

function ms_submitContactForm() {
	var error = false;
	var frm = document.forms.contact_form;
	
	$(frm.first_name).removeClassName('ms_error');
	$(frm.last_name).removeClassName('ms_error');
	$(frm.email_address).removeClassName('ms_error');
	$(frm.phone_number).removeClassName('ms_error');
	$(frm.country).removeClassName('ms_error');
	$(frm.company_name).removeClassName('ms_error');
	$(frm.zip_code).removeClassName('ms_error');
	$('privacy_check').removeClassName('ms_error');
	
	if (frm.first_name.value=='') {
		$(frm.first_name).addClassName('ms_error');
		error = true;
	}
	if (frm.last_name.value=='') {
		$(frm.last_name).addClassName('ms_error');
		error = true;
	}
	if (frm.email_address.value=='') {
		$(frm.email_address).addClassName('ms_error');
		error = true;
	} else {
		var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
		if (filter.test( frm.email_address.value )) {
		} else {
			$(frm.email_address).addClassName('ms_error');
			error = true;
		}
	}
	if (frm.country.value=='') {
		$(frm.country).addClassName('ms_error');
		error = true;
	}
	if (frm.company_name.value=='') {
		$(frm.company_name).addClassName('ms_error');
		error = true;
	}
	
	if (frm.zip_code.value=='') {
		$(frm.zip_code).addClassName('ms_error');
		error = true;
	}
	
	if (frm.receive_a_call.checked && (frm.phone_number.value=='')) {
		$(frm.phone_number).addClassName('ms_error');
		error = true;
	}
	
	if (!frm.privacy_check.checked) {
		$('privacy_check').addClassName('ms_error');
		error = true;
	}
	
	if (error) {
		$('error_line').setStyle({display:''});
	} else {
		$('error_line').setStyle({display:'none'});
		frm.submit();
	}
}

function ms_submitQuestionnaireForm() {
	var error = false;
	var frm = document.forms.questionnaire_form;
	
	$(frm.first_name).removeClassName('ms_error');
	$(frm.last_name).removeClassName('ms_error');
	$(frm.email_address).removeClassName('ms_error');
	$(frm.phone_number).removeClassName('ms_error');
	$(frm.country).removeClassName('ms_error');
	$(frm.company_name).removeClassName('ms_error');
	$(frm.zip_code).removeClassName('ms_error');
	$('privacy_check').removeClassName('ms_error');
	
	if (frm.first_name.value=='') {
		$(frm.first_name).addClassName('ms_error');
		error = true;
	}
	if (frm.last_name.value=='') {
		$(frm.last_name).addClassName('ms_error');
		error = true;
	}
	if (frm.email_address.value=='') {
		$(frm.email_address).addClassName('ms_error');
		error = true;
	} else {
		var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
		if (filter.test( frm.email_address.value )) {
		} else {
			$(frm.email_address).addClassName('ms_error');
			error = true;
		}
	}
	if (frm.country.value=='') {
		$(frm.country).addClassName('ms_error');
		error = true;
	}
	if (frm.company_name.value=='') {
		$(frm.company_name).addClassName('ms_error');
		error = true;
	}
	
	if (frm.zip_code.value=='') {
		$(frm.zip_code).addClassName('ms_error');
		error = true;
	}
	
	if (!frm.privacy_check.checked) {
		$('privacy_check').addClassName('ms_error');
		error = true;
	}
	
	if (error) {
		$('error_line').setStyle({display:''});
	} else {
		$('error_line').setStyle({display:'none'});
		frm.submit();
	}
}

function toggleCallbackStatus( which ) {
	if (which.checked) {
		document.getElementById('phone_star').style.display = 'inline';
	} else {
		document.getElementById('phone_star').style.display = 'none';
	}
}


var downloadContactFormAlreadyFilled = false;

function download_submitContactForm() {
	var error = false;
	var frm = document.forms.download_contactform;
	
	$('label_first_name').removeClassName('ms_error');
	$('label_last_name').removeClassName('ms_error');
	$('label_email_address').removeClassName('ms_error');
	$('label_zip_code').removeClassName('ms_error');
	$('label_phone_number').removeClassName('ms_error');
	$('label_country').removeClassName('ms_error');
	//$('label_company_name').removeClassName('ms_error');
	
	if (frm.first_name.value=='') {
		$('label_first_name').addClassName('ms_error');
		error = true;
	}
	if (frm.last_name.value=='') {
		$('label_last_name').addClassName('ms_error');
		error = true;
	}
	if (frm.email_address.value=='') {
		$('label_email_address').addClassName('ms_error');
		error = true;
	} else {
		var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
		if (filter.test( frm.email_address.value )) {
		} else {
			$('label_email_address').addClassName('ms_error');
			error = true;
		}
	}
	if (frm.country.value=='') {
		$('label_country').addClassName('ms_error');
		error = true;
	}
	if (!frm.data_protection.checked) {
		$('label_data_protection').addClassName('ms_error');
		error = true;
	}
	if (frm.zip_code.value=='') {
		$('label_zip_code').addClassName('ms_error');
		error = true;
	}
	/*
	if (frm.company_name.value=='') {
		$('label_company_name').addClassName('ms_error');
		error = true;
	}
	*/
	
	if (frm.receive_a_call.checked &&  (frm.phone_number.value=='')) {
		$('label_phone_number').addClassName('ms_error');
		error = true;
	}
	
	if (error) {
		//$('error_line').setStyle({display:''});
	} else {
		urchinTracker('/web/{$sitename}/Downloads/' + frm.download_filename.value + '/SENT');
		//$('error_line').setStyle({display:'none'});
		downloadContactFormAlreadyFilled = true;
		$('download_contacts_container').hide();

		if (frm.download_direct_link.value != '') {
			window.open(frm.download_direct_link.value, '_blank');
		} else {
			window.open('/neptun/neptun.php/oktopus/download/' + frm.download_id.value + '/');
		}
		
		frm.submit();
	}
}

function openDownloadContactform( id, name, filename, which, direct_link ) {
	which = $(which);
	if (!downloadContactFormAlreadyFilled) {
		var title = 'Download ' + which.down('.download_name').innerHTML.strip();
		$('download_title').update(title);
		$('download_contacts_container').setStyle( {top: '0px', position: 'absolute', height: $('main_container').getHeight()+'px' } );
		$('download_contacts_container').down('div.download_contacts').setStyle( {top: (document.viewport.getScrollOffsets().top+100) + 'px'} );
		document.forms.download_contactform.download_id.value = id;
		document.forms.download_contactform.download_name.value = name;
		document.forms.download_contactform.download_filename.value = filename;
		document.forms.download_contactform.download_direct_link.value = direct_link;
		$('download_contacts_container').show();
	}
}

function closeDownloadContactform() {
	$('download_contacts_container').hide();
}

var featureData;
homeFeatureCnt = 0;
homeFeatureCurr = 0;
function initHomeFeature() {

	var topLinkId = homeFeatureCnt-1;
	var midLinkId = 0;
	var bottomLinkId = 1;

	if (topLinkId<0) topLinkId = 0;
	if (homeFeatureCnt<1) bottomLinkId = 0;
	
	if (featureData == undefined) return;
	
	document.getElementById('top_link').innerHTML = featureData[topLinkId].product;
	document.getElementById('bottom_link').innerHTML = featureData[bottomLinkId].product;

	document.getElementById('product_head').innerHTML = featureData[midLinkId].product;
	document.getElementById('product_text').innerHTML = featureData[midLinkId].headline;
	document.getElementById('product_picture').src = featureData[midLinkId].picture;
	document.getElementById('product_link').href = featureData[midLinkId].linkurl;
	document.getElementById('product_link').target = featureData[midLinkId].linktarget;
}

function prevFeature() {
	homeFeatureCurr--;
	if (homeFeatureCurr < 0) {
		homeFeatureCurr = (homeFeatureCnt-1);
	}
	var topLinkId = homeFeatureCurr-1;
	if (topLinkId < 0) topLinkId = (homeFeatureCnt-1);
	var bottomLinkId = homeFeatureCurr+1;
	if (bottomLinkId > (homeFeatureCnt-1)) bottomLinkId = 0;

	document.getElementById('top_link').innerHTML = featureData[topLinkId].product;
	document.getElementById('bottom_link').innerHTML = featureData[bottomLinkId].product;

	document.getElementById('product_head').innerHTML = featureData[homeFeatureCurr].product;
	document.getElementById('product_text').innerHTML = featureData[homeFeatureCurr].headline;
	document.getElementById('product_picture').src = featureData[homeFeatureCurr].picture;
	document.getElementById('product_link').href = featureData[homeFeatureCurr].linkurl;
	document.getElementById('product_link').target = featureData[homeFeatureCurr].linktarget;
}

function nextFeature() {
	homeFeatureCurr++;
	if (homeFeatureCurr > (homeFeatureCnt-1)) {
		homeFeatureCurr = 0;
	}
	var topLinkId = homeFeatureCurr-1;
	if (topLinkId < 0) topLinkId = (homeFeatureCnt-1);
	var bottomLinkId = homeFeatureCurr+1;
	if (bottomLinkId > (homeFeatureCnt-1)) bottomLinkId = 0;

	document.getElementById('top_link').innerHTML = featureData[topLinkId].product;
	document.getElementById('bottom_link').innerHTML = featureData[bottomLinkId].product;

	document.getElementById('product_head').innerHTML = featureData[homeFeatureCurr].product;
	document.getElementById('product_text').innerHTML = featureData[homeFeatureCurr].headline;
	document.getElementById('product_picture').src = featureData[homeFeatureCurr].picture;
	document.getElementById('product_link').href = featureData[homeFeatureCurr].linkurl;
	document.getElementById('product_link').target = featureData[homeFeatureCurr].linktarget;
}

/**
* Helper for limiting Textarea lengths
* @param { Element } [which] The relevant element (the textarea).
* @param { Integer } [maxlen] The maximum length the textarea is limited to.
* @param { Event } [event] The event which triggered the functioncall.
* @function
* @name limitTextArea
*/
limitTextArea = function (which, maxlen, event) {
	if (!maxlen) maxlen=0;
	maxlen = parseInt(maxlen);
   
	if ( (maxlen!=0) && (which.value.length > maxlen) ) {
		which.value = which.value.substring(0,maxlen);
	}
   
	if ( ((event.keyCode >= 37)&&(event.keyCode <= 40)) ||        // Cursor keys
		 (event.keyCode == 8) ||                                // Backspace
		 (event.keyCode == 46) ||                                // Delete
		 (event.keyCode == 35) ||                                // End
		 (event.keyCode == 36) ||                                // Home
		 (isNaN(maxlen)) ||
		 (maxlen == 0) ||
		 (event.ctrlKey) ||
		 (event.metaKey) ||
		 (event.altKey) ) {
			return;
	}
	return (which.value.length <= (maxlen-1) );
}

function switchNewsArchive(which) {

	which = $(which);
	window.location.href = which.value;

}


function showHint(which) {
	var which = $(which);
	which.up('.systems_part_icon').setStyle({
		backgroundPosition: '0px -14px'
	});
	which.down('.hint').show();
}

function hideHint(which) {
	var which = $(which);
	which.up('.systems_part_icon').setStyle({
		backgroundPosition: '0 0'
	});
	which.down('.hint').hide();
}
