// # Qikbee

window.addEvent('domready', function() {

	// # Cufon Replacement
	//Cufon('h2')('blockquote');
	Cufon.replace('h1', {hover: true});
	Cufon.replace('h2', {hover: true});
	Cufon.replace('#desc');
	Cufon.replace('#sidebar h3');
	Cufon.replace('.tour_box h3');
	Cufon.replace('table#compare thead tr th');

	// # Clear Formfields on first focus, reset default, etc
	if($defined( $('order_step') )) { step = $('order_step').get('value'); } else {step = false;}
	
	$$('.formfield').each(function(item, i) {
				
		var title = item.get('title');
		var value = item.get('value');
		if(title == value) item.addClass('defaultvalue');
		if(step == 2) item.addClass('checkvalue');
	
		item.addEvents({
			
			'focus': function() {
				item.removeClass('error');
				var title = item.get('title');
				var value = item.get('value');
				if(title == value) {
					item.set('value', '');
					item.removeClass('defaultvalue');
				}
			},
			
			'blur': function() {
				var title = item.get('title');
				var value = item.get('value');
				if(value.length == 0) {
					item.addClass('defaultvalue');
					item.set('value', title);	
				}
			}
				
		});
		
	});
	
	// # Form validation -> Order Process
	$$('.order_button').addEvent('click', function(e) {
		// mark all fields with defaultclass as faulty
		var fieldswithdefault = $$('.defaultvalue');
		if(fieldswithdefault.length > 0) {
			fieldswithdefault.addClass('error');	
		}
		
		// check mail adress
		var mail_address = $('order_email').get('value');
		if (check_email(mail_address) == false ) {
			$('order_email').addClass('error');
		} else {
			$('order_email').removeClass('error');
		}
		
		// optional fields
		var optional_fields = $$('.optional_field');
		var optional_unused = true;
		optional_fields.each(function(item, i) {
			if(!item.hasClass('defaultvalue')) optional_unused = false;
		});
		if(optional_unused) {
			optional_fields.removeClass('error'); // because we do not care
			$('order_delivery_address_used').set('value', 0);
		} else {
			$('order_delivery_address_used').set('value', 1);
		}
		
		var fieldswitherror = $$('.error');
		if(fieldswitherror.length > 0) {
			e.stop();
		}
		$$('.checkvalue').set('disabled', '');
	});

	// # Form validation -> Contact Process
	$$('.contact_button').addEvent('click', function(e) {			
		// mark all fields with defaultclass as faulty
		var fieldswithdefault = $$('.defaultvalue');
		if(fieldswithdefault.length > 0) {
			fieldswithdefault.addClass('error');	
		}
		
		// check mail adress
		var mail_address = $('contact_email').get('value');
		if (check_email(mail_address) == false ) {
			$('contact_email').addClass('error');
		} else {
			$('contact_email').removeClass('error');
		}
				
		var fieldswitherror = $$('.error');
		if(fieldswitherror.length > 0) {
			e.stop();
		}
	});

	// # Check Values + Back-button for change
	$$('.checkvalue').set('disabled', 'disabled');
	if($defined( $('order_back') )) {
		
		formstatus = 'sendform';
		
		// function to toggle
		function orderform_toggle_buttonfuncs() {
			if(formstatus == 'sendform') { 
				// activate form, disable button to finish	
				$$('.checkvalue').set('disabled', '');
				$$('.checkvalue').removeClass('checkvalue');
				$('order_send').hide();
				$('additional_fields').hide();
				$('theadressbox').removeClass('addressbox');
				$('order_back').addClass('button_next');
				formstatus = 'changeform';
				$('order_back').blur();
			} else if(formstatus == 'changeform') {
				// disable form, activate button to finish, show additional inputs / radios / checkboxes
				$$('.formfield').addClass('checkvalue');
				$$('.checkvalue').set('disabled', 'disabled');
				if( $('agb').get('checked') ) $('order_send').show();
				$('additional_fields').show();
				$('theadressbox').addClass('addressbox');
				$('order_send').removeClass('button_disabled');
				$('order_back').removeClass('button_next');
				formstatus = 'sendform';
				$('order_back').blur();
			}
		}
		
		$('order_back').addEvent('click', function() {
			orderform_toggle_buttonfuncs();
		});
		
	}
	
	// # agb checked / unchecked
	if( $defined($('agb')) ) {
		//$('agb').set('checked', 'checked');
		$('order_send').hide();

		$('agb').addEvent('click', function() {
			var checked = this.get('checked');
			var disabled = this.get('disabled');
			if(disabled) {
			} else if(formstatus == 'sendform' && checked) {
				$('order_send').show();
			} else if(formstatus == 'sendform' && checked == false) {
				$('order_send').hide();
			}
		});
	}
	
	// # alternative delivery address
	if( $defined($('alternative_delivery')) ) {
		
		var alternative_delivery_address_slide = new Fx.Slide('alternative_delivery');
		alternative_delivery_address_slide.hide();
		
		$('alternative_delivery_title').addEvent('click', function() {
			alternative_delivery_address_slide.toggle();
		});
	}
	
	// # faq accordion
	var faqAccordion = new Fx.Accordion( $$('.faq-title'), $$('.faq-text'), {
		display: false,
		alwaysHide: true
	});
	
	// # video-lightbox
	var windowscroller = new Fx.Scroll(window);

	$$('.showvideobox').addEvent('click', function() {
	
		var scrollsize = window.getScrollSize();
		var windowsize = window.getSize();

		// get data
		var videourl = this.get('alt');
		//var imageurl = videourl.replace(/flv/, 'img');
		//imageurl = imageurl.replace(/flv/, 'jpg');

		var width = 750;
		var height = 519;

		var top = ((windowsize.y-height)/2).toInt();
		var left = ((windowsize.x-width)/2).toInt();

		// create stage
		var blackbox = new Element('div', {'id': 'blackbox'});
		blackbox.setStyles({'width': scrollsize.x, 'height': scrollsize.y, 'background-color': 'black', 'position': 'absolute', 'top': 0, 'left': 0, 'z-index': 990, 'opacity': 0});
		blackbox.inject('wrapper');
		blackbox.addEvent('click', function() {closevideobox();});
		blackbox.fade(0.85);

		// create player
		var player = new Element('div', {'id': 'player'});
		player.setStyles({'position': 'absolute', 'top': top, 'left': left, 'width': width, 'height': height, 'z-index': 999});
		player.inject('wrapper');
	
		// show player
		var so = new SWFObject('http://qikbee.com/wp-content/themes/qikbee/js/player.swf','mpl',width,height,'9');
		so.addParam('allowfullscreen','true');
		so.addParam('allowscriptaccess','always');
		so.addParam('wmode','opaque');
		so.addVariable('file', videourl);
		so.addVariable('lightcolor','FFFF66');
		so.addVariable('autostart','true');
		so.write('player');
		
		// create close button
		var closetop = 5;
		var closeleft = ((windowsize.x-150)/2).toInt();
		var closebutton = new Element('div', {'id': 'closebutton', 'html': 'Fenster Schlie&szlig;en'});
		closebutton.setStyles({'position': 'absolute', 'display': 'block', 'top': closetop, 'left': closeleft, 'width': 150, 'height': 15, 'z-index': 999, 'color': '#CCCCCC', 'text-align': 'center', 'cursor': 'pointer'});
		closebutton.inject('wrapper');
		
/*		var so = new SWFObject('http://qikbee.com/wp-content/themes/qikbee/js/player.swf','mpl',width,height,'9');
		so.addParam('allowscriptaccess','always');
		so.addParam('allowfullscreen','true');
		so.addParam('flashvars','&file='+videourl+'&image='+imageurl+'&backcolor=fdfcdf&frontcolor=432200&lightcolor=ffffff&screencolor=333333&controlbar=over&dock=false');
		so.write('player');
*/
		windowscroller.toTop();

		// close videobox
		$$('.closevideobox').addEvent('click', function() {closevideobox();});
		$('closebutton').addEvent('click', function() {closevideobox();});
	});
	
	// Box-Links
	$$('.box_253', '.box_390').each(function(item, i) {
		var url = item.get('title');
		if(url) {
			item.setStyle('cursor', 'pointer');
			item.addEvent('click', function() {
				window.location.href = url;
			});
		}
	});

	// Keydown Events
	document.addEvent('keydown',function(event) {

		switch( event.key ) {
			case 'esc':
				closevideobox();
				break;
		}
		
	});

	function closevideobox() {
		if($defined( $('blackbox') )) $('blackbox').destroy();
		if($defined( $('player') )) $('player').destroy();
		if($defined( $('closebutton') )) $('closebutton').destroy();
	}

	// # Compare Table
	
	if($defined($('compare'))) {
	
		$$('table#compare tbody tr:even').addClass('odd');
		
	}

});

function check_email(str) {
	
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
		
	if (str.indexOf(at)==-1){
		return false;
	}
	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		return false;
	}
	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		return false;
	}
	if (str.indexOf(at,(lat+1))!=-1){
		return false;
	}
	if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		return false;
	}
	if (str.indexOf(dot,(lat+2))==-1){
		return false;
	}
	if (str.indexOf(" ")!=-1){
		return false;
	}

	return true;			
}

