var in_ie_hell=false;
var round_off_firefox = false;
var debug=false;
window.addEvent('domready', function() {
	// CHECK BROWSER
	if(Browser.Engine.trident) {
		in_ie_hell=true;
		document.ondragstart = function () { return false; };
	}
	if(BrowserDetect.browser=='Firefox') {
		round_off_firefox = true;
		transform_rounded_thumbs();
	}
	if($('impression_thumbs_hold')!=null) {
		trigger_enlargers();
	}
	if($('slideshow')!=null) {
		make_fading_slideshow($('slideshow'));
	}
	//trigger_mp3_updating();
});


//////////////////////////////////////////////////////////////////
///////// MP3 PLAYER /////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
var music_player_swf, pop_up_player_swf;
function swf_player_loaded(string) {
	if(string=='player_is_loaded') {
		music_player_swf = $('music_player_swf');
		check_player_opened();
	} 
}
var cur_player_opened;
function check_player_opened() {
	cur_player_opened = Cookie.read('1910_player_open');
	//alert(cur_player_opened);
	 if(cur_player_opened=='true') {
		music_player_swf.toggle_player_display('opened');	
	}
}
var player_window = null;
function pop_up_player_interact(action) {
	if((cur_player_opened==null) || (cur_player_opened=='false')) {
		player_window = open_pop_up('player.php', 'pop_up_player', 'width=200,height=150,location=0,menubar=0', player_window);
		if(player_window) {
			music_player_swf.toggle_player_display('opened');
			var update_cookie = Cookie.write('1910_player_open', 'true', {domain: 'mediamogul.nl', path: '/'});
			player_window.music_playback(action);
		}
	} else if(cur_player_opened=='true') {
		music_player_swf.toggle_player_display('opened');	
	}
	//window.onunload=function() {return confirm("Close window?");}
}
function toggle_player_state() {
	music_player_swf.toggle_player_display('closed');
	cur_player_opened = 'false';
}
/*
//////////////////////////////////////////////////////////////////
///////// MP3 PLAYER V1 - REMEMBER PLAY POSITION FUNCTIONS ///////////////////////////////
///////////////////////////////////////////////////////////////////////////

function set_player_playposition() {
	// CHECK FOR COOKIE
	var cur_playback = Cookie.read('playback_pos_1910');
	//output('cur_playback = '+cur_playback);
	if(cur_playback!=null) {
		// TREK COOKIE UIT ELKAAR PASS NAAR FLASH | cur_pos:14420;paused:false;active_track:2
		cur_playback_bits = cur_playback.split(';');
		cur_pos = cur_playback_bits[0].split(':')[1];
		player_paused = cur_playback_bits[1].split(':')[1];
		track_index = cur_playback_bits[2].split(':')[1];
		output('COOKIE: cur_pos = '+cur_pos);
		music_player_swf.set_play_pos_ID(cur_pos, player_paused, track_index);
	}
}
var next_link;
function update_player_cookie(player_info_data) {
	var update_cookie = Cookie.write('playback_pos_1910', player_info_data, {domain: 'mediamogul.nl', path: '/'});
	if(next_link!=undefined) {
		window.location = next_link;
	}
}
function trigger_mp3_updating() {
	var doc_links = $$('a');
	doc_links.each(function(link, index) {
		if((link.className!='enlarge') && (link.href.indexOf('#')==-1)) {
			link.addEvent('click', function() {
				music_player_swf.get_playpos_ID();
				next_link = this.href;
			});
		}
	});
}
*/
function open_pop_up(window_url, window_name, window_feats, win_ref) {
	var the_window; // this will hold our opened window
	// first check to see if the window already exists
	if (win_ref != null) {
		// the window has already been created, but did the user close it?
		// if so, then reopen it. Otherwise make it the active window.
		if (!win_ref.closed) {
			//win_ref.focus();
			return win_ref;
		}
		// otherwise fall through to the code below to re-open the window
	}

	// if we get here, then the window hasn't been created yet, or it
	// was closed by the user.
	the_window = window.open(window_url, window_name, window_feats);
	return the_window;
} 

//////////////////////////////////////////////////////////////////////////////////
///////// ROUNDED CORNERS IN FIREFOX, DOOR IMAGE IN BACKGROUND TE PLAATSEN //////////////
////////////////////////////////////////////////////////////////////////////////
var empty_image = '_img/empty.gif';
function transform_rounded_thumbs() {
	round_image('impression_thumb', 'a.enlarge');
	round_image('image_to_round', 'div.round_image');
}
function round_image(image_class, wrapper_class) {
	if($$('img.'+image_class).length>0) {
		var rounded_thumbs = $$('img.'+image_class);
		var rounded_thumb_wrappers = $$(wrapper_class);
		rounded_thumb_wrappers.each(function(wrapper, index) {
			var his_image = wrapper.getElement('img');
			var his_image_src = his_image.src;
			// link.store('his_og_img', his_image_src);
			his_image.src = empty_image;
			wrapper.setStyles({
				'background-image': 'url('+his_image_src+')',
				'-moz-background-size': 'contain'
			});
		});
	}

}

var thumb_holder, large_holder, large_closer, large_image, show_loader;
function trigger_enlargers() {
	show_loader = $('loader_img');
	thumb_holder = $('impression_thumbs_hold');
	// INSERT LARGE
	var image_html='<a href="#" id="enlarged_image_closer"><img src="_img/empty.gif" id="enlarged_image"	width="595" height="395" alt="1910 Impressie" /></a>';
	large_holder	= new Element('div', {id: 'enlarged_image_hold', html: image_html});
	large_holder.inject(thumb_holder);

	large_closer = $('enlarged_image_closer');
	large_image = $('enlarged_image');

	// TRIGGER LINKS
	if($$('a.enlarge').length>0) {
		$$('a.enlarge').addEvent('click', function() {
			large_image.src=empty_image;
			enlarge_image(this);
			return false;
		});
	}	
}
function enlarge_image(link) {
	var link_pos = link.getPosition();
	large_image.src=link.href;
	
	var load_large_img = new Image();

	// SHOW LOADER
	show_loader.style.display='block';
	var link_pos = link.getPosition(thumb_holder);
	show_loader.setStyles({
		top: link_pos.y+35,
		left: link_pos.x+35
	});

	load_large_img.onload=function() {
		large_holder.setStyle('display', 'block');
		// ROUND OFF FIREFOX
		if(round_off_firefox==true) {
			var cur_image_src = large_image.src;
			large_image.src = empty_image;
			large_closer.setStyles({
					'background-image': 'url('+cur_image_src+')',
					'-moz-background-size': '595px 395px'
			});
		}
		show_loader.style.display='none';
	}
	load_large_img.src = link.href;
	// CLOSE IMAGE 
	large_closer.addEvent('click', function() {
		large_holder.setStyle('display', 'none');
		return false;
	});
}
///////////////////////////////////////////////////////////////////////
///////////// FADING SLIDESHOW /////////////////////////////////
/////////////////////////////////////////////////////////////////////
/*
zet div op position: relative (als hij niet absolute is)
pak alle pics in de div, zet ze op style: position absolute;
top: 0; left: 0; z-index zo dat volgorde in takt blijft: 1e bovenaan

dan fade 1 naar 2, eind van fade opacity: 0, zet 1 onderaan in z-index, en alle andere +1
is hij bij de laatste is, dan 

*/
var change_interval = 5000;
var fade_speed = 1000;
var fade_delay;
var auto_play;
function make_fading_slideshow(slideshow_holder) {
	var slideshow_holder_id = slideshow_holder.id;
	var slides = $$('#'+slideshow_holder_id+' img');
	var num_slides = slides.length;
	slideshow_holder.his_slides = slides; 
	slideshow_holder.num_slides = num_slides; 
	slideshow_holder.cur_index = 0;
	
	slides.each(function(slide, index) {
		slide.store('his_index', index);
		slide.store('his_z_index', num_slides);
		slide.setStyles({
			position: 'absolute',
			top: 0,
			left: 0,
			'z-index': num_slides
		});
		num_slides--;
	});
	if($('do_slidea')!=null) {
		auto_play = false;
		var slide_link = $('do_slide');
		slide_link.onclick=function() { fade_slide(slideshow_holder); }
	} else {
		auto_play = true;
		fade_delay = fade_slide.delay(change_interval, slideshow_holder);
	}	
}

function fade_slide(active_slideshow) {
	if(active_slideshow==undefined) {
		active_slideshow = this;
	}
	var reset_top;
	var cur_index = active_slideshow.cur_index;
	var slides = active_slideshow.his_slides;
	var num_slides = active_slideshow.num_slides;
	var next_index;
	if((cur_index+1)<num_slides) {
		reset_top = false;
		next_index = cur_index+1;
	} else {
		reset_top = true;
		next_index = 0;
	}
	// output('next_index = '+next_index);
	var fade_top = new Fx.Tween(slides[cur_index], {property: 'opacity', duration: fade_speed});
	var fade_bottom = new Fx.Tween(slides[next_index], {property: 'opacity', duration: fade_speed});
	
	fade_top.start(1,0).chain(
			//Notice that "this" refers to the calling object (in this case, the myFx object).
			function(){ 
				if(reset_top==false) {
					active_slideshow.cur_index++;
				} else {
				active_slideshow.cur_index = 0;
				slides[0].setStyle('opacity', 1);
				}
				if(auto_play==true) {
				fade_delay = fade_slide.delay(change_interval, active_slideshow);
				}
			}
	); 	
	if(slides[next_index].getStyle('opacity')==0) {
		fade_bottom.start(0, 1);
	}
	
}
///////////////////////////////////////////////////////////////////////
///////////// INSERT TEXT AT CURSOR POSITION /////////////////////////////////
/////////////////////////////////////////////////////////////////////

function insert_at_cursor(the_textarea, the_value) {
	//IE support
	if (document.selection) {
		the_textarea.focus();
		sel = document.selection.createRange();
		sel.text = the_value;
	//MOZILLA/NETSCAPE support
	} else if (the_textarea.selectionStart || the_textarea.selectionStart == '0') {
		var cursor_start = the_textarea.selectionStart;
		var cursor_end = the_textarea.selectionEnd;
		the_textarea.value = the_textarea.value.substring(0, cursor_start)+ the_value + the_textarea.value.substring(cursor_end, the_textarea.value.length);
	} else {
		the_textarea.value += the_value;
	}
}
function trigger_text_inserters() {
	var form_ta_area = document.test.test_ta;
	var inserters = $$('a.insert_text');
	inserters.addEvent('click', function() {
		var insert_val = this.title;
		insert_at_cursor(form_ta_area, insert_val);
		return false;
	});
}
// calling the function
// insert_at_cursor(document.formName.fieldName, 'this value');

///////////////////////////////////////////////////////////////////////
///////////// GET WINDOW & PAGE-DIMS /////////////////////////////////
/////////////////////////////////////////////////////////////////////
var array_page_size;
var overlay_div;
var scroll_x, scroll_y, window_w, window_h;

function get_page_size(){
	var scroll_position = window.getScroll();
	scroll_x = scroll_position.x;
	scroll_y = scroll_position.y;

	var body_size =	$(document.body).getScrollSize();
	body_w = body_size.x;
	body_h = body_size.y;
	
	var window_size = window.getSize();
	window_w = window_size.x;
	window_h = window_size.y;
	
	// for small pages with total height less then height of the viewport
	if(body_h < window_h) {
		page_h = window_h;
	} else { 
		page_h = body_h;
	}

	// for small pages with total width less then width of the viewport
	if(scroll_x < window_w){	
		page_w = window_w;
	} else {
		page_w = body_w;
	}
	array_page_size = new Array(page_w, page_h, window_w, window_h);
	return array_page_size;
}

////////////////////////////////////////////////////////////////////////////////////////////////
///////////// NEWSLETTER FORM /////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////
function check_subscribe_form_submit() {
	if($('histoire_nb_subscriber')!=null) {
		subscribe_form=$('histoire_nb_subscriber');
		subscribe_form.onsubmit=function() {
			var email_field = this.subscriber_mail;
			if (echeck(email_field.value)==false){
				email_field.focus();
						email_field.style.borderColor='#ff0000';
				return false;
			} else {
						email_field.style.borderColor='#666';
			}
			return true;
		}
	}
}

function validate_question(the_form) {

	if(!default_check(the_form.AQ_name)) { return false; }
	if(!default_check(the_form.AQ_street)) { return false; }
	if(!default_check(the_form.AQ_pc)) { return false; }
	if(!default_check(the_form.AQ_city)) { return false; }
	if(!default_check(the_form.AQ_phone_1)) { return false; }
	var email_field = the_form.AQ_email;
	if (echeck(email_field.value)==false){
			email_field.focus();
					email_field.style.borderColor='#ff0000';
			return false;
		} else {
					email_field.style.borderColor='#666';
		}	
	return true;
}


///////////// CUR MOUSE TARGET //////////////////////////////////////////////////////////////////////////
var cur_mouse_target;
function get_mouse_target(e){ 
	cur_mouse_target = $(e.target);
	//output('e');
}
var checking_mousemove=false;
function mousemove_checking(on_off) {
	if(on_off==true) {
		if(checking_mousemove==false) {
			// output('---- START mousemove');
			$(document.body).addEvent('mousemove', get_mouse_target);
		}
		checking_mousemove=true;
	} else if(on_off==false) {
		// output('-- QUIT mousemove');
		checking_mousemove = false;
		$(document.body).removeEvent('mousemove', get_mouse_target);
		cur_mouse_target='';
	}
}


//////////////////////////////////////////////////////////////////////////////////////////////////////
///////////// PRINT POP-UP LINKS ////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
function init_print_links() {
	var pop_up_w = 850;
	var pop_up_h = 350;

	var print_popup_links = $$('a.print_page');
	print_popup_links.addEvent('click', function() {
		var pop_up_url = this.href;
		newwindow=window.open(pop_up_url,'Print_product_item', 'height=600,width=850');
		return false;
	});
}
//////////////////////////////////////////////////////////////////////////////////////////////////////
///////////// FABRIC FOCUS //////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
var fabric_focus_img, fabric_focus_name, fabric_focus_desc, fabric_focus_link, fabric_focus_link_h;
function init_show_fabric_focus() {
	fabric_focus_img= $('fabric_focus_img');
	fabric_focus_name= $('fabric_focus_name');
	fabric_focus_desc= $('fabric_focus_desc');
	fabric_focus_link= $('show_even_larger');
	fabric_focus_link_h = $('show_even_larger_h3');

	fabric_thumb_links.each(function(fabric_link, index) {
		fabric_link.onclick=function() {
			show_fabric_zoom(this);
			return false;
		}
	});
}
function show_fabric_zoom(the_link) {
	var fabric_focus_settings = the_link.rev;
	var fabric_settings_array = get_fabric_focus_settings(fabric_focus_settings);
	
	var img_to_show = the_link.href;
	var img_orientation = fabric_settings_array[0];
	var fabric_name = fabric_settings_array[1];
	if(fabric_name!='') {
		fabric_name = unescape(fabric_name);
		fabric_name = fabric_name.replace(/\+/g, ' ');
	}
	var fabric_desc = fabric_settings_array[2];
	if(fabric_desc=='') { 
		fabric_desc='&nbsp;'; 
	} else {
		fabric_desc = unescape(fabric_desc);
		fabric_desc = fabric_desc.replace(/\+/g, ' ');
	}
	var fabric_url = fabric_settings_array[3];
	// SHOW LOADING
	toggle_opacity(the_link, 'transparent');
	
	// PRELOAD IMAGE
	var load_img = new Image();
	load_img.onload = function() {
		fabric_focus_img.src=img_to_show;
		fabric_focus_img.className=img_orientation;
		toggle_opacity(the_link, 'full');
		// SET URL, NAME & CAPTION
		fabric_focus_link.href = fabric_url;
		fabric_focus_link_h.href = fabric_url;
		fabric_focus_link_h.innerHTML=fabric_name;
		fabric_focus_desc.innerHTML=fabric_desc;
	}
	load_img.src=img_to_show;	
}
function get_fabric_focus_settings(img_settings) {
	// {orientation: landscape###name: eiken - lak blank###caption: ''}
	var fabric_array = img_settings.split('###');
	// WIDTH
	var img_orient_raw = fabric_array[0]; //	'{orientation: 315'
	var img_orientation = img_orient_raw.split('{orientation: ')[1];	
	// HEIGHT
	var fabric_name_raw = fabric_array[1]; //	name: 445
	var fabric_name = fabric_name_raw.split('name: ')[1];	
	// CAPTION
	var img_caption_raw = fabric_array[2]; // caption: ''
	var img_caption = img_caption_raw.replace("caption: '", "");
	img_caption = img_caption.replace("'", "");
	// URL	// url: 
	var fabric_full_url_raw = fabric_array[3]; // url: }
	var fabric_full_url = fabric_full_url_raw.replace("url: ", "");
	fabric_full_url = fabric_full_url.replace("}", "");

	var fabric_settings_array = new Array(img_orientation, fabric_name, img_caption, fabric_full_url);
	return fabric_settings_array;
}

/////////////////////////////////////////////////////////////////////
///////////// VALIDATE STUFF ////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
function default_check(input) {
	if(input!=undefined) {
		if ((input.value==null)||(input.value=="")){
				input.style.borderColor="#ff0000";
			input.focus()
			return false;
		} else {
				input.style.borderColor="#777";
					return true;
		}
	} else {
		return true;
	}
}
function echeck(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		 	alert("Please fill out a valid email address")
		 	return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		 	alert("Please fill out a valid email address")
		 	return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
				alert("Please fill out a valid email address")
				return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
				alert("Please fill out a valid email address")
				return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
				alert("Please fill out a valid email address")
				return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
				alert("Please fill out a valid email address")
				return false
		 }
		
		 if (str.indexOf(" ")!=-1){
				alert("Please fill out a valid email address")
				return false
		 }

		return true;
}
function validate_radio_button(btn) {
		var cnt = -1;
		for (var i=btn.length-1; i > -1; i--) {
				if (btn[i].checked) {
						cnt = i; 
						i = -1;
				}
		}
		if (cnt > -1) { 
				return btn[cnt].value;
		} else {
				return null;
		}
}

var op_i=0;
var output_div_available;
var output_div;
function output(string) {
	if(output_div_available==undefined) {
		if($('output')!=null) {
			output_div_available=true;
			output_div = $('output');
		} else {
			output_div_available=false;		
		}
	}
	if(output_div_available==true) {
		var cur_content = output_div.innerHTML;
		output_div.innerHTML = cur_content+'<br />'+string;
	}
	return false;
}

function output_V1(text) {
	op_i++;
	var cur_val = js_output_ta.value;
	js_output_ta.value = cur_val+'\n'+op_i+'.'+text;
}

// PARENT TARGET CHECKERS
function has_parent_tag_and_id(theTarget, theTag, theId) {
	var theTarget = $(theTarget);
	is_correct_parent = false;
	if(theTarget!=null) {
		theTag = theTag.toUpperCase();
		
		// CHECK OF ER AL NIET OP ZIT
		if((theTarget.tagName==theTag) && (theTarget.getProperty('id')==theId)) {
			is_correct_parent = true;
		} else {
				// output('theTarget = '+theTarget+' TAG: '+theTarget.get('tag')+' - parentNode: '+theTarget.parentNode);
			theTarget.getParents().each(function(el) {
					if(el.tagName== theTag) {
							if(el.getProperty('id') == theId) {
									is_correct_parent = true;
							}
					}	
			});
		}
	}
	return( is_correct_parent );
}
function has_parent_tag_and_class(theTarget, theTag, theClass) {
	is_correct_parent = false;
	theTag = theTag.toUpperCase();
	// CHECK OF ER AL NIET OP ZIT
	if((theTarget.tagName==theTag) && (theTarget.hasClass(theClass))) {
		is_correct_parent = true;
	} else {
		theTarget.getParents().each(function(el) {
				//output('theTarget = '+theTarget+' CLASS: '+el.className+' TAG: '+el.get('tag')+' - searcing for: '+theClass);
				if(el.tagName== theTag) {
					//output(' CLASS: '+el.className);
						if(el.hasClass(theClass)) {
								is_correct_parent = true;
						}
				}
		});
	}
	return( is_correct_parent );
}
