/*global window document alert aObj JSONscriptRequest $ */
function countChildElements(parent)
{
    return $(parent).children().size();
}

// global variable for marketplace impression tracking
var listTracking = [];

function targetedMarketplaceListImpression(t)
{
	var offerID;
	if($('#slider_combo').length){
		offerID = $('div#slider_combo ul li:eq(' + t + ')').attr('id');
	}
	else{
		offerID = $('div#non_slider_combo ul li:eq(' + t + ')').attr('id');
	}
	
	if ( jQuery.inArray(offerID, listTracking) == -1 )
	{
		listTracking.push(offerID);
		pageTracker._trackEvent('Targeted Marketplace List', 'Impression', offerID );
	}
}

function marketplaceList_callback(JSONData) {
	var head = document.getElementsByTagName("head")[0];
	if ( JSONData.marketplaceList.length > 0 )
	{
        var MD = JSONData.marketplaceList;
        var MDLen = MD.length;
		
		var VD = JSONData.videoList;
		var VDLen = VD.length;
		var slider_height;
		
		if(MDLen == 1)
		{
			slider_height = "200px";
		}
		else if(MDLen == 2)
		{
			slider_height = "400px";
		}
		else
		{
			slider_height = "600px";
		}

        // load javascript and process
		var jQTools = document.createElement("script");
            jQTools.setAttribute("charset", "UTF-8");
            jQTools.setAttribute("src", "http://widgets.fccinteractive.com/marketplace/mktlist/js/jquery.tools.min.js");
            jQTools.setAttribute("type", "text/javascript");
			head.appendChild(jQTools);
		
        var ezSlider = document.createElement("script");
            ezSlider.setAttribute("charset", "UTF-8");
            ezSlider.setAttribute("src", "http://widgets.fccinteractive.com/marketplace/mktlist/js/mktlist.easySlider1.7.js");
            ezSlider.setAttribute("type", "text/javascript");
            head.appendChild(ezSlider);
					
		var listTrigger = document.createElement("script");
			listTrigger.setAttribute("charset", "UTF-8");
			listTrigger.setAttribute("src", "http://widgets.fccinteractive.com/marketplace/mktlist/js/mktlist.triggerSlider.js");
			listTrigger.setAttribute("type", "text/javascript");
			head.appendChild(listTrigger);
	
        // insert stylesheet into the head
        $('head').append('<link rel="stylesheet" href="http://widgets.fccinteractive.com/marketplace/mktlist/list.css" type="text/css" media="screen" />');
			
		// set domain
		if ( typeof(newspaperDomain) != 'undefined' ) 
        {
			CreatorDomain = newspaperDomain;
        }
		if ( CreatorDomain != '' )
        {
			domain = "http://www." + CreatorDomain;
		}
		else
        {
			domain ="";
		}

		// marketplace offer header
		var mktList_addbusiness = $('<div></div>').attr("id","headerbutton").html("<a id=\"addbusiness\" href=\"" + domain + "/event/addbusiness\"><span>Add your business</span></a>");
		$("#mktList_widget").append(mktList_addbusiness);
		
		var mktList_header = $('<div></div>').attr("id","mktlist_header");
        $("#mktList_widget").append(mktList_header);
		
		// create slider div
        var mktList_content,mktList_slider;
		if(MDLen > 3)
		{
			mktList_content = $("<div></div>").attr("id","container_buttons");
			mktList_slider = $("<div></div>").attr("id","slider_combo").css("height",slider_height);
		}
		else
		{
			mktList_content = $("<div></div>").attr("id","container");
			mktList_slider = $("<div></div>").attr("id","non_slider_combo").css("height",slider_height);
		}
				
				// create slider unordered list
				var slideUL = $("<ul></ul>");
				
				/* --------------------------------------------------------------
				 * create a list that randomly will sort the deals
				 * ------------------------------------------------------------*/
				var randomObj,loc_id,loc_marketid,loc_name,headline,image,slideLI;
				var randomList = [];
				var randomCount = 0;
				
				if(MDLen > 10){
					limitAmt = 10;
				}
				else{
					limitAmt = MDLen;
				}
								
                while ( randomList.length < MDLen ) 
                {
                     randomObj = Math.floor( Math.random() * MDLen ); 
					 if ( jQuery.inArray(randomObj, randomList) == -1 )
                     { 
                         randomList[randomCount] = randomObj;
                         randomCount++ ;

                         offer_id = MD[randomObj].id;
                         loc_id = MD[randomObj].loc_id;
                         loc_marketid = MD[randomObj].loc_marketid;
                         loc_name = MD[randomObj].loc_name;
                         headline = MD[randomObj].headline;
						
						var trackingcount = 3;
						if(randomList.length < 3){
							trackingcount = randomList.length;
						}
							
						if( randomCount <= trackingcount ){
							listTracking.push(offer_id);
							$(document).ready(function() {
								pageTracker._trackEvent('Targeted Marketplace List', 'Impression', offer_id);
							});
						}
						

                         if ( MD[randomObj].image )
                         {
                             image = MD[randomObj].image;
                         }
                         else
                         {
                             image = '';
                         }

                         var vid_filename = "";
                         if (JSONData.videoList.length > 0)
                         {
                             for ( var i = 0; i < VDLen; i++ )
                             {
                                 if ( VD[i].loc_marketid == loc_marketid )
                                 {
                                     vid_filename = VD[i].vid_filename;
                                     break;
                                 }
                             }
                         }
						
						slideLI = $("<li></li>").attr("id",offer_id);
						
						var mktList_row = $('<div></div>').addClass("row");
						
						// buttons
						var row_buttons = $('<div></div>').addClass("buttons");
						
						if ( loc_id != '' && vid_filename != '')
						{
							var videoDirectory1 = vid_filename.substring(0,1);
                            var videoDirectory2 = vid_filename.substring(1,2);
                            var videoDirectory3 = vid_filename.substring(2,3);
							var overlay = $('<div></div>').attr('id', 'overlay' + loc_id).addClass('overlay').html('<a class="player" href="http://media03.i29.net/hqprod/streams/_definst_/' + videoDirectory1 + '/' + videoDirectory2 + '/' + videoDirectory3 + '/' + vid_filename + '">&nbsp;</a>');
							$("body").append(overlay);
							
							$(row_buttons).append(
								$('<div class="button"><a onClick="pageTracker._trackEvent(\'Targeted Marketplace List\', \'Video Click\', \''+ vid_filename +'\');" rel="#overlay' + loc_id +'" href="javascript:void(0);"><img src=\"http://widgets.fccinteractive.com/marketplace/mktlist/images/video.png\" border=\"0\" /></a></div>')
							);
						}
						
						$(row_buttons).append(
								$('<div class="button"><a onClick="pageTracker._trackEvent(\'Targeted Marketplace List\', \'Print Click\', \''+ offer_id +'\');" href="'+ domain +'/event/coupon/mkt_id/'+ offer_id +'/loc_id/'+ loc_id +'" title="Print Offer"><img src=\"http://widgets.fccinteractive.com/marketplace/mktlist/images/print.png\" border=\"0\" /></a></div>')
                        );
						$(row_buttons).append(
								$('<div class="button"><a onClick="pageTracker._trackEvent(\'Targeted Marketplace List\', \'Share Click\', \''+ offer_id +'\');" href="'+ domain +'/event/mobile_deal/mkt_id/'+ offer_id +'/loc_id/'+ loc_id +'" title="Send Offer to Mobile Phone"><img src=\"http://widgets.fccinteractive.com/marketplace/mktlist/images/mobile.png\" border=\"0\" /></a></div>')
                        );

						$(mktList_row).append(row_buttons);

						//offer and logo
						var row_tagline = $('<div></div>').addClass("tagline");
						
						
						if ( image != '' )
						{
							$(row_tagline).append(
									$('<div class="logo"><a onclick="pageTracker._trackEvent(\'Targeted Marketplace List\', \'Offer Click\', \''+ offer_id +'\');" href="'+ domain +'/event/details/loc_id/'+ loc_id +'"><img src="http://marketplace.fccinteractive.com/logos/' + image + '" /></a><br /><span>' + loc_name + '</span></div>')
							);
						}
						else
						{
							$(row_tagline).append(
									$('<div class="logo"><a onclick="pageTracker._trackEvent(\'Targeted Marketplace List\', \'Offer Click\', \''+ offer_id +'\');" href="'+ domain +'/event/details/loc_id/'+ loc_id +'">' + loc_name + '</a></div>')
							);

						}
						
						
						$(row_tagline).append(
							$('<div class="offer"><a onclick="pageTracker._trackEvent(\'Targeted Marketplace List\', \'Offer Click\', \''+ offer_id +'\');" href="'+ domain +'/event/details/loc_id/'+ loc_id +'">' + headline + '</a></div>')
                        );
						$(mktList_row).append(row_tagline);
							
						$(slideLI).append(mktList_row);	
							
					 }
					$(slideUL).append(slideLI);
				}				
					  
			$(mktList_slider).append(slideUL);
			
		$(mktList_content).append(mktList_slider);
		
		$("#mktList_widget").append(mktList_content);
		
		var mktList_footer = $('<div></div>').attr("id","listFooter").html("<span><a href=\""+ domain +"/event/marketplace_offers/\">view all offers</a> | <a href=\""+ domain +"/event/account:homepage/tab/Marketplace%20Deals/\">sign up for email offers</a></span>");
		$("#mktList_widget").append(mktList_footer);
    }
	
	var flowplayerListScript = document.createElement("script");
       	flowplayerListScript.setAttribute("charset", "UTF-8");
       	flowplayerListScript.setAttribute("src", "http://widgets.fccinteractive.com/marketplace/mktlist/js/flowplayer-3.1.4.min.js");
       	flowplayerListScript.setAttribute("type", "text/javascript");
       	head.appendChild(flowplayerListScript);
			
	var videoListOverlay = document.createElement("script");
        videoListOverlay.setAttribute("charset", "UTF-8");
        videoListOverlay.setAttribute("src", "http://widgets.fccinteractive.com/marketplace/mktlist/js/mktlist.videoOverlay.js");
        videoListOverlay.setAttribute("type", "text/javascript");
        head.appendChild(videoListOverlay);
}
