// File: 	megadropdown_xml_grabber.js
// Author: 	Matt Garvin: matt@redfrogconsulting.com
// Created:	Jan 05, 2010	
// ==========================================================================================
// ==========================================================================================
//
//
// ==========================================================================================
// ==========================================================================================

	var xml_location = '/Utility/xml/megadropdown.xml'; // where to grab XML from?
		
	var HTML_STRING = '';
	//var bracket = '&lt;';							// this bracket is for verifying XML in textarea
	var bracket = '<';   							// this bracket is for generating real XML

	// Start function when DOM has completely loaded 
	$(document).ready(function(){ 
		grab_XML();
	});

// ==========================================================================================
// ==========================================================================================

	// this megadropdown stuff was taken out of Master page...

      	function addMega(){
		$(this).addClass("hovering");

	}

     	function removeMega(){
		$(this).removeClass("hovering");
	}
	
    	var megaConfig = {
	 	interval: 200,
	 	sensitivity: 50,
	 	over: addMega,
	 	timeout: 300,
	 	out: removeMega
    	};

	function add_mega_stuff() {	
    	$("ul.navigation-list.parent li").hoverIntent(megaConfig);
    	}	
    	
    	
 
	    
    	
    	
// ==========================================================================================
// ==========================================================================================

 function grab_XML() {

	// grab the xml file, then parse it to populate the "megadropdown"...
	var this_url = xml_location;
	build_html(bracket + '!-- fetched from "' + this_url + '" -->\n');
	$.get(this_url,{},function(xml){		
      	var i = 0;		// item counter
      	var flag = false;
      	var menu_name = '';
      	var menu_style_id = '';
      	var menu_link_url = '';
      	var menu_link_display = '';

      	var subnav_name = '';
      	var subnav_style_id = '';
      	var subnav_style_class = '';
      	var subnav_link_url = '';
      	var subnav_link_display = '';

      	var tile_content_type = '';
      	
			// start writing the HTML
	      	build_html(bracket + 'ul class="navigation-list parent">');

			// grab collection of MENUs from XML and loop
			$('menu',xml).each(function(i)  
			{
   				menu_name = $(this).attr("name");
   				menu_style_id = $(this).attr("style-id");
   				menu_link_url = $(this).attr("link-url");
   				menu_link_display = $(this).attr("link-display");

				// UPDATE HTML
				build_html('\n' + bracket + '!-- ************ MAIN NAV LINK ************* -->');
				build_html('\n' + bracket + 'li class="navigation-item" id="' + menu_style_id + '">' + bracket + 'a href="' + menu_link_url + '" class="internal-link view-group">' + menu_link_display + bracket + '/a>\n' + bracket + 'div class="ytv-mega-dropdown">');		
					
					// put in the "subnav" (the links on lefthand) *****************************************
					flag = false;				
					// grab subnav items from MENU collection and loop
					$(this).find('subnav').each(function(j){
						if(j==0)
						{
							build_html('\n' + bracket + 'ul class="ytv-dropdown-subnav">')
							flag = true;	
						}	
		   				subnav_name = $(this).attr("name");
		   				subnav_style_id = $(this).attr("style-id");
		   				subnav_style_class = $(this).attr("style-class");
		   				subnav_link_url = $(this).attr("link-url");
		   				subnav_link_display = $(this).attr("link-display");
					
						// UPDATE HTML
						build_html('\n' + bracket + 'li>' + bracket + 'a href="' + subnav_link_url + '" class="' + subnav_style_class + '" id="' + subnav_style_id + '">' + subnav_link_display + bracket + '/a>' + bracket + '/li>');
					});	
					if(flag==true)			
						build_html('\n' + bracket + '/ul>')

					// put in the tiles ********************************************************************
					$(this).find('tiles').each(function(l){
						 tile_group_display = $(this).attr("tile-group-display");
						 tile_group_id = $(this).attr("tile-group-id");
						 div_group_id = $(this).attr("div-group-id");
						 if(div_group_id == '')
						 	div_group_id = 'ytv-' + menu_name;
						 
								flag = false;				
								// grab tile items from MENU collection and loop
								$(this).find('tile').each(function(k){
									if(k==0)
									{
										build_html('\n' + bracket + 'div class="ytv-dropdown-col" id="' + div_group_id +  '">')
										// only if there are subgroups (like Shows) insert headings...
										if(tile_group_display != '')
											build_html('\n' + bracket + 'h3 id="' + tile_group_id + '">' + tile_group_display + bracket + '/h3>');
										build_html('\n' + bracket + 'ul class="dropdown-list">')
										flag = true;	
									}	
			
						   				tile_content_type = $(this).attr("content-type");
				
										switch(tile_content_type)
										{
										case 'enhanced':
											// UPDATE HTML
						   					tile_link_url = $(this).attr("link-url");
						   					tile_link_display = $(this).attr("link-display");
					   						tile_img_src = $(this).attr("img-src");
											build_html('\n' + bracket + 'li>' + bracket + 'a href="' + tile_link_url + '">' + bracket + 'img src="' + tile_img_src + '" alt="" />' + bracket + '/a>' + bracket + 'div class="dropdown-descript">' + bracket + 'a href="' + tile_link_url + '">' + tile_link_display + bracket + '/a>' + bracket + '/div>' + bracket + '/li>');
										  break;
										case 'ad':
											// UPDATE HTML
						   					tile_link_url = $(this).attr("link-url");
					   						tile_img_src = $(this).attr("img-src");
											tile_link_target = $(this).attr("link-target");
											build_html('\n' + bracket + 'li class="ad">' + bracket + 'a href="' + tile_link_url + '" target="' + tile_link_target + '">' + bracket + 'img src="' + tile_img_src + '" alt="" />' + bracket + '/a>' + bracket + '/li>');
										  	break;
										default:
											// UPDATE HTML
						   					tile_link_url = $(this).attr("link-url");
					   						tile_img_src = $(this).attr("img-src");
											build_html('\n' + bracket + 'li>' + bracket + 'a href="' + tile_link_url + '">' + bracket + 'img src="' + tile_img_src + '" alt="" />' + bracket + '/a>' + bracket + '/li>');
										}		   				
								});	
						if(tile_group_display != '' && l <= $(this).size())			
							build_html('\n' + bracket + '/ul>\n' + bracket + '/div>')
					});	
					if(flag==true)			
						build_html('\n' + bracket + '/ul>\n' + bracket + '/div>')
						
					build_html('\n' + bracket + '/div>\n' + bracket + '/li>')	

				i++;
			});
			
			// close UL to end the entire HTML fragment
			build_html('\n' + bracket + '/ul>');
			write_html();
			setTimeout('add_mega_stuff()', 1000)
	});
}	

// ==========================================================================================
// ==========================================================================================

	function build_html(arg1)
	{
		HTML_STRING += arg1;
	}	

	function write_html()
	{
		// var search_div = '<div id="ytv-global-search"><ul class="field-list"><li class="field-item"><span class="field-item-input"><input name="" type="text" maxlength="64" size="15" id="" class="search" value="search ytv.com" /></span></li><li class="field-item"><input name="" type="image" src="/themes/YTV/images/ytv-header/ytv-header-search-button.png" class="ytv-search" /></li></ul></div>';
		search_div = ''; // used to append the search html, now it doesn't as of Jan 25, 2010
		$('#ytv-header-nav-search-bar').html(HTML_STRING + search_div);
		HTML_STRING = '';
	}	

// ==========================================================================================
// ==========================================================================================
	