var sales_thumb_links;
var product_category_link;
var product_category_links;
var fabric_thumb_links;
var back_link;
var in_ie_hell=false;
var subscribe_form;

var debug=false;

window.addEvent('domready', function() {
	// CHECK BROWSER
	if(Browser.Engine.trident) {
		in_ie_hell=true;
	}
	if(Browser.Engine.webkit==true) {
		change_safari_DL_links()
	}
	
	init_item_galleries();
	sales_thumb_links=$$('a.sales_thumb_show');
	if(sales_thumb_links.length>0) {
		init_sales_thumbs();
	}
	if(document.body.id=='producten_overview') {
		product_category_links=$$('a.product_category');
		if(product_category_links.length>0) {
			init_show_product_cats();
		}
	}
	if(document.body.id=='product_fabrics') {
		fabric_thumb_links=$$('a.show_fabric_image');
		if(fabric_thumb_links.length>0) {
			init_show_fabric_focus();
		}
	}
	if(document.body.id=='image_library') {
		if($('image_library_form')!=null) {
			check_library_cat_chooser();
		}
		if($('enlarge_library_focus')!=null) {
			var dl_enlarger = $('enlarge_library_focus');
			dl_enlarger.onclick=function() {
				enlarge_image(this);
				return false;
			}
		}
	}
	back_link = $('back_link');
	back_link.onclick=function() {
		history.back();
		return false;
	}
	// ENGLISH LINK -> TIJDELIJK DISABLEN
	/*
	var enlish_link=$('lang_switch');
	enlish_link.onclick=function() {
		var note_html='<h1 class="page_header">Coming soon</h1>We are working on the english version of our new website.<br />It will be online shortly. Thank you for your patience.';
		insert_msg_modal(this, note_html);
		return false;
	}
	*/
	// SUBSCRIBE FORM VALIDATEN
	if($('subscribe_nl_form')!=null) {
		check_subscribe_form_submit();
	}
	// CLOTH SUB ITEMS SHOWEN
	if($('fabric_show_more')!=null) {
		enable_cloth_toggling();
	}
	// FABRIC SCROLLER
	if($('fabrics_scroller')!=null) {
		fabric_gallery();
	}
});
/////////////////////////////////////////////////////////////////////
///////////// NEWSLETTER FORM ///////////////////////////////////////
/////////////////////////////////////////////////////////////////////
function check_subscribe_form_submit() {
	subscribe_form=$('subscribe_nl_form');
	subscribe_form.onsubmit=function() {
		var email_field = this.email_address;
		if (echeck(email_field.value)==false){
			email_field.focus();
	        email_field.style.borderColor='#ff0000';
			return false;
		} else {
	        email_field.style.borderColor='#777';
		}
	}
}
/////////////////////////////////////////////////////////////////////
///////////// IMAGE LIBRARY FORM ////////////////////////////////////
/////////////////////////////////////////////////////////////////////
function check_library_cat_chooser() {
	var cat_chooser = document.image_library_form.library_cat;
	var product_chooser = document.image_library_form.library_product;
	cat_chooser.onchange=function() { document.location.href=cat_chooser.value; }
	product_chooser.onchange=function() { document.location.href=product_chooser.value; }
	/*
	var cur_product_val = product_chooser.value;
	var product_cat_vals = cur_product_val.split('-');
	var product_cat_val=product_cat_vals[0];
	if(this.value!=product_cat_val) {
		product_chooser.value='';
	}
	*/
}
/////////////////////////////////////////////////////////////////////
///////////// 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.src=img_to_show;
	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;
	}
	
	
}
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;
}
/////////////////////////////////////////////////////////////////////
///////////// PRODUCT CATEGORIES ////////////////////////////////////
/////////////////////////////////////////////////////////////////////
var active_cat='all';
var cat_pics_to_show = new Array();
var cat_pics_to_hide = new Array();
var all_product_pics;
var producten_main_link;
var product_fader = new Fx;
var DELAY_show_active_cats;
var fade_duration = 250;
var fade_next_interval = 50;
var content_body_div;
var init_product_cat;

function init_show_product_cats() {

	// OUTPUT TESTING
	if($('js_output')) {
		js_output_ta=$('js_output');
		debug=true;
	}

	content_body_div=$('content_body');
	var og_content_h = content_body_div.getStyle('height');
	content_body_div.style.height=og_content_h;
	producten_main_link = $('main_a_2');
	producten_main_link.onclick=function() {
		toggle_product_cats(this, 'standard');
		return false;
	}
	all_product_pics = $$('.product_overview_item');
	product_category_links.each(function(cat_link, index) {
		cat_link.onclick=function() {
			toggle_product_cats(this, 'standard');
			return false;
		}
	});
	// INIT CATEGORY GEKOZEN ?
	///*
	if($('init_product_category')) {
		init_product_cat = $('init_product_category');
		toggle_product_cats(init_product_cat, 'init_cats');
	}
	//*/
}
function toggle_product_cats(link, action) {
	active_cat = link.rel;
	// UPDATE ACTIVE LINK
	for(var i=0; i<product_category_links.length;i++) {
		if(product_category_links[i].rel==active_cat) {
			product_category_links[i].className='product_category active';
		} else {
			product_category_links[i].className='product_category';	
		}
	}	
	// CLASS TO SHOW
	active_cat_class = 'product_overview_item '+active_cat; 
	var hidden_i=0;
	var active_i=0;
	cat_pics_to_hide.length=0;
	cat_pics_to_show.length=0;
	for(var i=0;i<all_product_pics.length;i++) {
		if(active_cat!='all') {
			// EERST DE ACTIVE HIDEN, DAN... DE BENODIGDE LATEN ZIEN
			if(all_product_pics[i].className!=active_cat_class) {
				if(all_product_pics[i].style.display!='none') {
					cat_pics_to_hide[hidden_i] = all_product_pics[i];
					hidden_i++;
				}
			} else {
				cat_pics_to_show[active_i] = all_product_pics[i];
				active_i++;
			}
		// ALLEMAAL VISIBLE
		} else {
			if(all_product_pics[i].style.display=='none') {
				cat_pics_to_show[active_i] = all_product_pics[i];
				active_i++;
			}
		}
	}
	num_to_show = cat_pics_to_show.length;
	hiding_counter = cat_pics_to_hide.length;
	if(action=='standard') {
		if(active_cat!='all') {
			// EERST DE CATS_TO_HIDE HIDEN
			hide_cat_pics();
		} else {
			show_cat_pics();
		}
	} else if(action=='init_cats') {
		hide_cat_pics_direct();
	}
}
var hiding_counter = 0;
var DELAY_hide_single_cat;
var showing_counter = 0;
var num_to_show = 0;
var DELAY_show_single_cat;
/// HIDING
function hide_cat_pics() {
	if(hiding_counter>0) {
		hide_single_cat_pic();
	} else {
		// OP HET EIND...
		$clear(DELAY_hide_single_cat);
		DELAY_show_active_cats = show_cat_pics.delay(fade_duration);
	}
}
function hide_single_cat_pic() {
	hiding_counter--;
	var cur_to_hide = cat_pics_to_hide[hiding_counter];
	//alert(cur_to_hide);
	product_fader = new Fx.Tween(cur_to_hide, { property: 'opacity', duration: fade_duration } ).start(1, 0).chain(
		function() {  
		  	this.element.style.display='none';
		}
	);
	DELAY_hide_single_cat = hide_cat_pics.delay(fade_next_interval);
}
// HIDING DIRECTLY, NO FADE OR DELAY
function hide_cat_pics_direct() {
	for(var i=0;i<cat_pics_to_hide.length;i++) {
		cat_pics_to_hide[i].style.display='none';
		//cat_pics_to_hide[i].fade(0);
	}
}

// SHOWING
function show_cat_pics() {
	if(showing_counter<(num_to_show)) {
		show_single_cat_pic();
	} else {
		// OP HET EIND...
		showing_counter = 0;
		$clear(DELAY_show_single_cat);
	}
}
function show_single_cat_pic() {
	var cur_to_show = cat_pics_to_show[showing_counter];
	var cur_opacity = cur_to_show.getStyle('opacity');
	if(debug==true) output('showing_counter = '+showing_counter+' en cur_opacity: '+cur_opacity);
	if(cur_opacity==0) {
	  	cur_to_show.style.display='block';
		product_fader = new Fx.Tween(cur_to_show, { property: 'opacity', duration: fade_duration } ).start(0, 1);
	} else {
		cur_to_show.style.display='block';
	}
	DELAY_show_single_cat = show_cat_pics.delay(fade_next_interval);
	showing_counter++;
}


/////////////////////////////////////////////////////////////////////
///////////// SALES PICS ////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
var cur_sales_pic;
var thumb_holder;
function init_sales_thumbs() {
	// POP-UP LINK VAN IMAGES
	sales_thumb_links.each(function(sale_link, i){
		sale_link.onclick=function() {
			return false;
		}
		sale_link.onmouseover=function() {
			show_sales_pic(this);			
			return false;
		}
		
	});
}
function show_sales_pic(the_link) {
	var thumb_rel_id = the_link.rel;
	// THUMB ID
	thumb_holder=$('shop_image_'+thumb_rel_id);

	thumb_holder.src=the_link.href;
}
/////////////////////////////////////////////////////////////////////
///////////// TOGGLE MORE CLOTH /////////////////////////////////////
/////////////////////////////////////////////////////////////////////
function enable_cloth_toggling() {
	var show_more_cloth = $('fabric_show_more');
	var more_cloth_ul = $('fabric_more_cloth');
	show_more_cloth.onclick=function() {
		if((more_cloth_ul.style.display=='') || (more_cloth_ul.style.display=='none')) {
			more_cloth_ul.style.display='block';	
		} else {
			more_cloth_ul.style.display='none';
		}
		return false;
	}
}
/////////////////////////////////////////////////////////////////////
///////////// VALIDATE STUFF ////////////////////////////////////////
/////////////////////////////////////////////////////////////////////

function validate_add_comment(theform) {
	// NAME
	var poster_name=theform.poster_name;
	if(!default_check(poster_name)) { return false; }
	// EMAIL
	var poster_email=theform.poster_email;
	if (echeck(poster_email.value)==false){
		poster_email.focus();
        poster_email.style.borderColor='#ff0000';
		return false;
	} else {
        poster_email.style.borderColor='#777';
	}
	// COMMENT
	var comment_add=theform.comment_add;
	if(!default_check(comment_add)) { return false; }
	
	return true;

}

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;
}
var op_i=0;
// if(debug==true) output('showing_counter = '+showing_counter);
function output(text) {
	op_i++;
	var cur_val = js_output_ta.value;
	js_output_ta.value = cur_val+'\n'+op_i+'.'+text;
}
//////////////

function change_safari_DL_links() {
	var all_links = $$('a');
	all_links.each(function(all_link, i){
		if(all_link.href.indexOf('file_download.php?file=')!=-1) {
			all_link.target='_self';
		}
	});
}


// PARENT TARGET CHECKERSSSSS
function has_parent_tag_and_id(theTarget, theTag, theId) {

	is_correct_parent = false;
	
	theTarget.getParents().each(function(el) {
	
	    if(el.get('tag') == 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;
	
	theTarget.getParents().each(function(el) {
	
	    if(el.get('tag') == theTag) {
	        if(el.hasClass(theClass)) {
	            returnme = true;
	        }
    	}
	
	});
	return( is_correct_parent );
}
