/*  File: 				DocumentReady.js
    Site: 				www.dijkhuisinooij.nl
    Description:		brings the site in the defaut state:
						 - DocumentReady function: encapsultation of the jQuery Javascript functionality.
						 - contains basic function for handling user events
	
	
	Update Overview:
		18-NOV-2009:	Initial version.

  
*/


 // Standard colors:
	
		var color_menu = "#CCFF00"; //color menu in normal state
		var color_menu_hover = "#66FF00"; //color menu on hover.
		var color_menu_select = "#000000"; //color menu selected Item
		
		
	// Global variables:	
	
	  
        var MAIN_SITE ="http://www.dijkhuisinooij.nl/"; //url of the main site.
        var MENU_SELECTED= "none";
		var PAGE_SELECTED= "none";
		var M1_ITEM_SELECTED= "none";
		var M2_ITEM_SELECTED= "none";
		var GROUP_POINTER =new Array;
		var GROUP_LAST =new Array;
		var GROUP_FLAG =new Array;
		

$(function(){ 
		   
/* Descrption: OnDocumentReady Function:
			   brings site in default state and 
          

*/
	

	 
	  
   // bind event on direct link elements:
 
 
	  $("#main_container").children().each( function(n){
							
							  var active_id =this.id;
							 
							  if(active_id.substring(0,3)=='dl_'){
						 		
								$("#"+this.id).bind('mouseover',direct_link_hover).bind('mouseout',direct_link_normal).bind('click',direct_link_click).bind('click',new_page);
							  }
						   });
	
	
	//initial setup of menu and bindings:
	  $(".M2_").hide(); //at default second menu level is hidden:
	  $(".M1_ ul li").bind('mouseover',show_M1_hover).bind('mouseout',show_M1_normal).bind('click',show_M1_click).bind('click',new_page);
	  $(".M2_ ul li").bind('mouseover',show_M2_hover).bind('mouseout',show_M2_normal).bind('click',show_M2_click).bind('click',new_page);
	  $(".menu_spacer").unbind('mouseover').unbind('mouseout').unbind('click');
	

	//Select first item in menu level 1 and set page control globals to this selection
	  $("#Menu_0_ ul li:first-child").each(function(n){
			var active_id =this.id;
	        var obj_attr = active_id.split("_");
			MENU_SELECTED="#Menu_"+obj_attr[1]+"_"; //set M2 level menu in case no M2 level menu is realted value wiil be Menu_0 whiich does not excist in DOM.
	        M1_ITEM_SELECTED=this.id;
            PAGE_SELECTED='#page_'+obj_attr[2]+"_";

		  //rest set color in menu M1, M2:
			$(".M2_ .menu_items").css('color',color_menu);
			$(".M1_ .menu_items").css('color',color_menu);
			
		  //set color in selected item M1:	
			$("#"+this.id).css('color',color_menu_select);
			
		  //check if the selected menu item M1 refers to a same page as an item in M2 menu: incase color the first occurance:

			$(MENU_SELECTED+' ul li').each( function(n){
					  var active_id =this.id;
					  var obj_attr = active_id.split("_"); 
					 
					  if('#page_'+obj_attr[2]+"_"== PAGE_SELECTED){
						  if(M2_ITEM_SELECTED== "none"){
							 $('#'+this.id).css('color',color_menu_select);
							 M2_ITEM_SELECTED=this.id;
							 is_page_pointer_not_set=false;
						  }
					  }
					  else{
						$('#'+this.id).css('color', color_menu);  
					  }
										  
			});
				
		});
	    if(MENU_SELECTED!="none"){$(MENU_SELECTED).show();} // show second level
		
		
	//hide content will be shown as soon all dfault settings are completed in function page_change	
	    $("#content_container").children().hide();
		
	//search in all elements of the content part and set group naviagation defaults	page by page:
		
		$("#content_container").children().each (function(n){
													  
		  //bind UI events to "SYS" field in case the belong to group; inital fill of group_flag group_last arrays.								  
			$("#"+this.id).children().each (function(n){										 
				var active_id =this.id;
				var obj_attr = active_id.split("_");
				if(obj_attr[3]!=0){
					GROUP_LAST[obj_attr[1]+"_"+obj_attr[3]]=1;
					if(obj_attr[0]=="SYS"){
						$("#"+this.id).bind("mouseover",next_image_hover).bind("mouseout",next_image_normal).bind("click",next_image_click);
					}
					GROUP_FLAG[obj_attr[1]+"_"+obj_attr[3]]=true;
				}
													 
			});
				
		 // determine last order per group and set value of group_last array:
			$("#"+this.id).children().each (function(n){										 
				var active_id =this.id;
				var obj_attr = active_id.split("_");
				if(obj_attr[3]!=0){
					if(obj_attr[5]>GROUP_LAST[obj_attr[1]+"_"+obj_attr[3]]){
						GROUP_LAST[obj_attr[1]+"_"+obj_attr[3]]=obj_attr[5];
						
					}
				}
													 
			});
			
		  //set start value for eacg group: by default 1, in case group is indicated as Randdom a rondam start value is calculted:
			$("#"+this.id).children().each (function(n){									 
				var active_id =this.id;
				var obj_attr = active_id.split("_");
				if(obj_attr[4]!="Y"){
					
						GROUP_POINTER[obj_attr[1]+"_"+obj_attr[3]]=1;
					
				}
				else{
					GROUP_POINTER[obj_attr[1]+"_"+obj_attr[3]]=1+Math.floor(Math.random()*GROUP_LAST[obj_attr[1]+"_"+obj_attr[3]]);
				}
													 
			});
				
		
													 
      });
		$("#content_container").css('height','390px');
		$(".M2_").css('height','25px');
	  change_page(); //apply all initial settings and show content.
	  window.status =MAIN_SITE;
	

}); // End OnDocumentReady Function ............................................................................

 
function show_M1_hover(event){
	event.preventDefault();
	
	$(this).css('cursor', 'pointer');
	
	if(MENU_SELECTED!="none"){$(MENU_SELECTED).hide();}
	var active_id =this.id;
	var obj_attr = active_id.split("_");
	$("#Menu_"+obj_attr[1]+"_").show();
	$(".M1_ .menu_items").css('color',color_menu);
	$("#"+this.id).css('color',color_menu_select);
	return false;

}


function show_M1_normal(event){
	event.preventDefault();
	$(this).css('cursor', 'default');
	var active_id =this.id;
	var obj_attr = active_id.split("_");
	$("#Menu_"+obj_attr[1]+"_").hide();	
	if(MENU_SELECTED!="none"){$(MENU_SELECTED).show();}
	$(".M1_ .menu_items").css('color',color_menu);
	$("#"+M1_ITEM_SELECTED).css('color',color_menu_select);	
	return false;

}
	
function show_M1_click(event){
	event.preventDefault();	
	var active_id =this.id;
	var obj_attr = active_id.split("_");
	
	MENU_SELECTED="#Menu_"+obj_attr[1]+"_";
	
	M1_ITEM_SELECTED=this.id;
	M2_ITEM_SELECTED= "none";
	
	var active_id =this.id;
	var obj_attr = active_id.split("_"); 
    PAGE_SELECTED='#page_'+obj_attr[2]+"_";
	
	$(".M2_ .menu_items").css('color',color_menu);
	$(".M1_ .menu_items").css('color',color_menu);
	$("#"+this.id).css('color',color_menu_select);

	
	
	$(MENU_SELECTED+' ul li').each( function(n){
												
											
							
							  var active_id =this.id;
	                          var obj_attr = active_id.split("_"); 
							 
							  if('#page_'+obj_attr[2]+"_"== PAGE_SELECTED){
								  if(M2_ITEM_SELECTED== "none"){
								     $('#'+this.id).css('color',color_menu_select);
								     M2_ITEM_SELECTED=this.id;
								     is_page_pointer_not_set=false;
								  }
							  }
							  else{
								$('#'+this.id).css('color', color_menu);  
							  }
							 
							  
						   });
	
	
	return false;

}


function show_M2_hover(event){
	event.preventDefault();
	
	$(this).css('cursor', 'pointer');
	//$("#"+this.id).siblings().css('opacity','0.3');
	//$(".menu_spacer").css('opacity','1');
	$(".M2_ .menu_items").css('color',color_menu);
	$("#"+this.id).css('color',color_menu_select);
	
	return false;

}


function show_M2_normal(event){
	event.preventDefault();
	$(this).css('cursor', 'default');
	//$("#"+this.id).siblings().css('opacity','1');
		$(".M2_ .menu_items").css('color',color_menu);
	$("#"+M2_ITEM_SELECTED).css('color',color_menu_select);
	return false;

}
		
function show_M2_click(event){
	event.preventDefault();	
	M2_ITEM_SELECTED= this.id;
	$(".M2_ .menu_items").css('color',color_menu);
	$("#"+this.id).css('color',color_menu_select);
	
	var active_id =this.id;
	var obj_attr = active_id.split("_"); 
    PAGE_SELECTED='#page_'+obj_attr[2]+"_";
	
	return false;

}



 
function direct_link_hover(event){
	event.preventDefault();
	$(this).css('cursor', 'pointer');
	$("#"+this.id).css('color',color_menu_hover);
	

	return false;

}

function direct_link_normal(event){
	event.preventDefault();
	$(this).css('cursor', 'default');
	$("#"+this.id).css('color',color_menu);
	return false;

}

function direct_link_click(event){
	event.preventDefault();
	
	var active_id =this.id;
	var obj_attr = active_id.split("_"); 
	
	if(MENU_SELECTED!="none"){$(MENU_SELECTED).hide();}
	
    PAGE_SELECTED='#page_'+obj_attr[2]+"_";
	MENU_SELECTED= "none";
	M1_ITEM_SELECTED= "none";
	M2_ITEM_SELECTED= "none";
	
	$(".menu_items").css('color',color_menu);
	
	
	
	$(".menu_items").each( function(n){
							
							  var active_id =this.id;
	                          var obj_attr = active_id.split("_"); 
							
							
							 
							  if('#page_'+obj_attr[2]+"_"== PAGE_SELECTED){
								  
								  
								 if(M1_ITEM_SELECTED== "none"){
									 
									  if(obj_attr[3]==1){
											MENU_SELECTED="#Menu_"+obj_attr[1]+"_";
											M1_ITEM_SELECTED=this.id;
											$('#'+this.id).css('color',color_menu_select);
											$(MENU_SELECTED+' ul li').each( function(n){
												  var active_id =this.id;
												  var obj_attr = active_id.split("_"); 
												  if('#page_'+obj_attr[2]+"_"== PAGE_SELECTED){
													  if(M2_ITEM_SELECTED== "none"){
														 $('#'+this.id).css('color',color_menu_select);
														 M2_ITEM_SELECTED=this.id;
														 is_page_pointer_not_set=false;
													  }
												  }
											   });
									  }
									  else{
										   $('#'+this.id).css('color',color_menu_select);
										   M2_ITEM_SELECTED=this.id;
										   $(".menu_items").each( function(n){
																		   
												  var obj_attr_m2 =M2_ITEM_SELECTED.split("_");						   					   
												  var active_id =this.id;
												  var obj_attr = active_id.split("_"); 
												  if (M1_ITEM_SELECTED== "none"){
													  if(obj_attr_m2[4]==obj_attr[1]){
														  M1_ITEM_SELECTED=this.id;
														  $('#'+this.id).css('color',color_menu_select);
														  MENU_SELECTED="#Menu_"+obj_attr[1]+"_";
													  }
													  
												  }
												  					   
												
										   });
										  
									  }
									 
								 
								 }
								
							  }
							
			 });
	
	
	

	    if(MENU_SELECTED!="none"){$(MENU_SELECTED).show();}
	
	
	
	
	
	
	return false;

}	



function next_image_hover(event){
	event.preventDefault();
	
	$(this).css('cursor', 'pointer');
	$("#"+this.id).css('color',color_menu_hover);
	
	return false;

}


function next_image_normal(event){
	event.preventDefault();
	$(this).css('cursor', 'default');
	$("#"+this.id).css('color',color_menu);
	return false;

}
		
function next_image_click(event){
	event.preventDefault();	

	 var active_id =this.id;
     var obj_attr = active_id.split("_");
	 if(GROUP_POINTER[obj_attr[1]+"_"+obj_attr[3]] <GROUP_LAST[obj_attr[1]+"_"+obj_attr[3]]){
		GROUP_POINTER[obj_attr[1]+"_"+obj_attr[3]]++;
	  }
	  else
	  {
		GROUP_POINTER[obj_attr[1]+"_"+obj_attr[3]]=1;
	  }
	  change_page();
	return false;
  
}




		
function new_page(event){
	event.preventDefault();

	
	$(PAGE_SELECTED).children().each(function(n){
			 var active_id =this.id;
			 var obj_attr = active_id.split("_");
			 GROUP_FLAG[obj_attr[1]+"_"+obj_attr[3]]=true;
	 });
	 $(PAGE_SELECTED).children().each(function(n){
			 var active_id =this.id;
			 var obj_attr = active_id.split("_");
			 if(GROUP_FLAG[obj_attr[1]+"_"+obj_attr[3]]){
				  GROUP_FLAG[obj_attr[1]+"_"+obj_attr[3]]=false;
				  if(GROUP_POINTER[obj_attr[1]+"_"+obj_attr[3]] <GROUP_LAST[obj_attr[1]+"_"+obj_attr[3]]){
						GROUP_POINTER[obj_attr[1]+"_"+obj_attr[3]]++;
				   }
				   else
				   {
						GROUP_POINTER[obj_attr[1]+"_"+obj_attr[3]]=1;
				   }
				  
			 }
	 });
	
	change_page();
	return false;

}

function change_page(){

	$("#content_container").children().hide();
	
	$(PAGE_SELECTED).children().hide();
							
	$(PAGE_SELECTED).children().each(function(n){
				              var active_id =this.id;
				              var obj_attr = active_id.split("_");
							//show alle element that are ungrouped, all SYS objeces and those objects of which order is equal to the group_pointer:
							if(obj_attr[0]=="SYS" || obj_attr[3]==0 || obj_attr[5]==GROUP_POINTER[obj_attr[1]+"_"+obj_attr[3]] ){  
								  $("#"+this.id).show();
							  }
											 
							
				
	              });
	
	
	$(PAGE_SELECTED).show();
	
	
	return false;

}







