var forumsArray = ['majdah.maktoob.com','uaesm.maktoob.com', 'alfrasha.maktoob.com', 'cars-club.maktoob.com' , 'forum.maktoob.com' , 'almobile.maktoob.com' , 'forum.sh3bwah.maktoob.com' ,
    'musahim.maktoob.com' , 'arb3.maktoob.com', 'travel.maktoob.com' , 'dvd4arab.maktoob.com' , 'sport4ever.maktoob.com' , 'quran.maktoob.com' ] ;
var spaceIds = [2142651634,2142651781,2142651518,2142651568,2142651893,2142651517,2142651703,2142651669,2142651548,2142651666,2142651569,2142651987,2143296103];
var ywas = [10001898745196,1000869268790,10001213174851,10001122666251,10001898745196,1000897630331,10001898745196,1000869268790,10001213174851,1000624196728,10001898745196,10001586439352,10001586439352] ;
var jsoneUrl = "http://i1.makcdn.com/TodayEverywhere/data.js";

var dommmm = document.domain ;
for(i in forumsArray){
    if (forumsArray[i].indexOf(dommmm) >= 0  ){
            var spaceId = spaceIds[i];
            var projectId = ywas[i];
            break;
    }
}
// ##################################### //
// ### DON'T MODIFY BENEATH THIS LINE ## //
// ##################################### //
var rootStatus = true;
var paginator = 1;
var numItems = 0;
var locked = false;
YUI().use("cookie", "scrollview", "scrollview-paginator", "node", "event", "anim", "jsonp", "json-parse", "escape", function (Y) {
	// On contentready, start INITng the event handler for accordion effect
	Y.on('contentready',function(){
		var insideItemsUL = Y.one('#ymk-tew-over');
		// onmouseover action handler
		insideItemsUL.all('li').on('mouseenter', function(e) {
			var outerDiv = e.currentTarget;
			tewAnim = new Y.Anim({
				node: outerDiv,
				from: {width: 179},
				to: {width: 329},
				duration: 0.5
			});
			tewAnim.on("end", function() {
				var currentIndex = e.currentTarget.getAttribute("id").toString().replace("inside-", "");
				if ((currentIndex % 5 === 4) && (currentIndex != 0)) {
					var ymkWidth = parseInt(Y.one("#ymk-tew-over").getStyle("right").toString().replace("px", "")) - parseInt(150);
					Y.one("#ymk-tew-over").setStyle("right", ymkWidth);
				}
			});
			tewAnim.run();
			outerDiv.one('div').setStyle('width','auto').addClass('slidover');
		});

		// onmouseout action handler
		insideItemsUL.all('li').on("mouseleave",function(e) {
			var outerDiv = e.currentTarget;
			tewAnim = new Y.Anim({
				node: outerDiv,
				to: {width: 179},
				duration: 0.5
			});
			tewAnim.on("start", function(){
				var currentIndex = e.currentTarget.getAttribute("id").toString().replace("inside-", "");
				if ((currentIndex % 5 === 4) && (currentIndex != 0)) {
					var ymkWidth = parseInt(Y.one("#ymk-tew-over").getStyle("right").toString().replace("px", "")) + parseInt(150);
					Y.one("#ymk-tew-over").setStyle("right", ymkWidth);
				}
			});
			tewAnim.run();
			outerDiv.one('div').removeClass("slidover");
		});
	}, '.inside-tew');

	// Attach an "on domready" event listener to the DIV #main-holder to send the request
	Y.on("domready", function(e) {
		var url = jsoneUrl + "?callback={callback}";
		Y.jsonp(url, handleJSONP);
	});

	// Attach an  "on domready" event listener to Show TEW bar
	Y.on("domready", function() {
		// onClick on `tew-opener` open the slider
		Y.one("#tew-opener").on("click", function() {
			Y.one("#tew-opener").hide("fadeOut",function() {
				Y.one("#tew-driver").setStyle("display", "block");
				var tewAnim = new Y.Anim({
					node: "#tew-driver",
					from: {height: 0},
					to: {height: 209},
					easing: Y.Easing.easeIn,
					duration: 0.2
				});
				// Run baby, RUNNNN
				tewAnim.run();
			});
			Y.Cookie.set("yahoo_tew", "half", {expires: new Date("January 12, 2025"), path: "/"});
		});

		// onClick on `tew-closer` close the slider
		Y.one("#tew-closer").on("click", function() {
			if (rootStatus) {
				var tewAnim = new Y.Anim({
					node: "#tew-driver",
					from: {height: 209},
					to: {height: 0},
					easing: Y.Easing.backIn,
					duration: 0.2
				});
				tewAnim.on('end', function(){
					Y.one("#tew-opener").show("fadeIn",function() {
						Y.one("#tew-driver").setStyle("display", "none");
						Y.Cookie.set("yahoo_tew", "closed", {expires: new Date("January 12, 2025"), path: "/"});
					});
				});
				tewAnim.run();
			} else {
				var tewAnim = new Y.Anim({
					node: "#tew-driver",
					from: {height: function(node) {return node.get('scrollHeight');}},
					to: {height: 209},
					easing: Y.Easing.backIn,
					duration: 0.3
				});
				tewAnim.run();
				rootStatus = true;
			}
		});

		// onClick on `tew-prev` paginate the details to next details item
		Y.one("#tew-prev").on("click", function(){
			if ((paginator) >= 1) {
				showDetails(paginator - 1);
				if (Y.one("#tew-next").getStyle("display") == "none") {
					Y.one("#tew-next").setStyle("display", "block");
					Y.one("#tew-next-empty").setStyle("display", "none");
				}
			}
			if(paginator == 0) {
				Y.one("#tew-prev").setStyle("display", "none");
				Y.one("#tew-prev-empty").setStyle("display", "block");
			}
		});
		// onClick on `tew-next` paginate the details to previous details item
		Y.one("#tew-next").on("click", function(){
			if ((paginator + 1) < numItems) {
				showDetails(paginator + 1);
				if (Y.one("#tew-prev").getStyle("display") == "none") {
					Y.one("#tew-prev").setStyle("display", "block");
					Y.one("#tew-prev-empty").setStyle("display", "none");
				}
			}

			if ((paginator + 1) == numItems) {
				Y.one("#tew-next").setStyle("display", "none");
				Y.one("#tew-next-empty").setStyle("display", "block");
			}
		});
	});
});

/**
 * Function to handle the JSONP response
 *
 * @param ARRAY response, An array that contains a JSON object
 * @return VOID, Nothing to be returned, only setContent to "targets"
 */
function handleJSONP(response) {
	numItems = _fillOver(response);
	_fillDetails(response);
	_showDriver();
}

/**
 * Fills "OVER" view
 *
 * @param ARRAY response, An array tha contains JSON objects to fill the target selector
 * @return VOID, Nothing to be returned, only setContent to "#ymk-tew-over"
 */
function _fillOver(response) {
	// Set number of items
	YUI().use("anim", "json", "node", "json-parse", "escape", function(Y) {
		var html = '', i, l;
		// The returned data was parsed into an array of objects.
		// Start filling the HTML

		// Fill DIV with ID {ymk-tew-over}
		var target = Y.one("#ymk-tew-over");
		var themeClass;
		for (i = 0, l = response.length; i < l; ++i) {
			response[i].title = Y.Escape.html(response[i].title);
			response[i].image = Y.Escape.html(response[i].image);
			themeClass = "zothrimg";
			if (i == 0) {
				themeClass = "imgfirst";
			}
			html += '<li class="inside-tew" id="inside-'+i+'"><div class="'+ themeClass +'" id="outer-div-'+i+'"><span class="imgshdw"></span><div onclick="showDetails('+i+')" class="imgtxtsprant" id="inside-div-'+i+'"><p id="inside-p-'+i+'" class="dtext"><a onclick="showDetails('+i+')">' + response[i].title + '</a><br /><span id="marrow-'+i+'" class="mrarow" onclick="showDetails('+i+')"></span></p></div><img onclick="showDetails('+i+')" id="inside-img-'+i+'" src="' + response[i].image + '" class="slidimgz" alt="' + response[i].title + '" title="' + response[i].title + '"/><span class="icndtarw"></span></div></li>';
		}
		// Use the Node API to apply the new innerHTML to the target
		target.setContent(html);
		// Constants
		var WINDOW_WIDTH, TOTAL_PAGES, ITEM_PER_PAGE = 5;
		// Class names
		var RIGHT_BUTTON = "right-button", LEFT_BUTTON = "left-button", PAGINATION = "pagination";
		// YNode references
		var _carousel;
		// Animator
		var _anim;
		// Current X position used in animation
		var _currentXPosition, _startXPosition, _startIndex = 0, _lastIndex;
		// Current pagination page shown; it contains a integer like 1, 2, etc.
		var _currentIndex = 0;
		// Event handlers
		function init() {
			// Initialize the DOM references
			_carousel = Y.one(".carousel"),
			// Animation stuff
			_anim = new Y.Anim({node: _carousel, duration: 0.5, easing: Y.Easing.easeOut});
			// Get the offsetWidth of the list containing the photos
			WINDOW_WIDTH = _carousel.get("children").item(0).get("offsetWidth");
			TOTAL_PAGES = _carousel.get("children").size();
			_lastIndex = TOTAL_PAGES - 1;
			_currentXPosition =parseInt(_carousel.getStyle('right'),10);
			// Add a custom attribute to track the current page that we're on
			_anim.addAttr("currentPage", { value : _currentIndex });
			_anim.on("end", handleScrollEnd);
		}

		// When the scrolling animation ends, this event handler is called.
		function handleScrollEnd(e){}

		// Detect the click and then scroll appropriately
		function scrollControl(e) {
			var target = e.target,
			hasLeftButton = target.hasClass(LEFT_BUTTON),
			hasRightButton = target.hasClass(RIGHT_BUTTON),
			hasPagination = target.get("parentNode").hasClass(PAGINATION),
			gotoPage;
			if (hasLeftButton) {
				scrollLeft();
			} else if (hasRightButton) {
				scrollRight();
			} else if (hasPagination) {
				// Parse out class name "page" to get the integer
				gotoPage = parseInt(target.get("className").substring(4), 10);
				paginate(gotoPage);
			}
			if (hasLeftButton || hasRightButton || hasPagination) {
				_anim.set("to", {'right' : _currentXPosition });
				_anim.set("currentPage", {value : _currentIndex});
				_anim.run();
			}
		}

		// Handles scrolling left
		function scrollLeft() {
			if (_currentIndex === _startIndex) {_currentIndex= 5;}
			else {
				_currentIndex+= 5;
				if(_currentIndex  >= TOTAL_PAGES  ) {_currentXPosition = 0; _currentIndex = 0;}
			}
			_currentXPosition = _currentIndex *  WINDOW_WIDTH * -1;
		}

		// Handles scrolling right
		function scrollRight() {
			if (_currentIndex === _startIndex) {_currentIndex = TOTAL_PAGES - 5;}
			else {_currentIndex-= 5;}
			_currentXPosition = _currentIndex *  WINDOW_WIDTH * -1;
		}

		// Handles pagination
		function paginate(gotoPage) {
			var multiple;
			if (gotoPage > _currentIndex) {
				// This is like clicking go right
				multiple = gotoPage - _currentIndex;
				for (var i = 0;i < multiple;i++) {
					_currentXPosition -= WINDOW_WIDTH;
				}
			} else if (gotoPage < _currentIndex) {
				// This is like clicking go left
				multiple = _currentIndex - gotoPage;
				for (var i = 0;i < multiple;i++) {
					_currentXPosition += WINDOW_WIDTH;
				}
			}
			_currentIndex = gotoPage;
		}

		// Start executing slider logic
		Y.on("domready", init);
		Y.on("click", scrollControl, ".container");
	});
	initTracker(response.length);
	return response.length;
}

/**
 * Fills "DETAILS" view
 *
 * @param ARRAY response, An array tha contains JSON objects to fill the target selector
 * @return VOID, Nothing to be returned, only setContent to "#ymk-tew-details"
 */
function _fillDetails(response) {
	YUI().use("node", "escape", function(Y) {
		var html = '', i, l;
		// Fill DIV with ID {ymk-tew-over}
		var target = Y.one("#details-holder");
		for (i = 0, l = response.length; i < l; i++) {
			response[i].title = Y.Escape.html(response[i].title);
			response[i].image = Y.Escape.html(response[i].image);
			html += '<div id="details-item-'+i+'" style="display:none;height:0px;" class="txtslide details-item-class"><div class="shrside"><ul><li><span class="fctitle"><span class="hdntxt">المعجبين على Facebook</span></span><iframe src="//www.facebook.com/plugins/like.php?locale=ar_AR&amp;href='+Y.Escape.html(response[i].fb_url)+'&amp;send=false&amp;layout=button_count&amp;width=90&amp;show_faces=true&amp;action=like&amp;colorscheme=dark&amp;font&amp;height=21&amp;appId=154180584660464" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:90px; height:21px;" allowTransparency="true"></iframe></li><li><dl><dt><span class="artctitle"><span class="hdntxt">مواضيع متشابهة</span></span></dt><dd><a id="related-article-'+i+'" target="_blank" href="' + response[i].extra_link1 + '">' + response[i].extra_title1 + '</a></dd><dd><a id="related-article-'+i+'" target="_blank" href="' + response[i].extra_link2 + '">' + response[i].extra_title2 + '</a></dd></dl></li></ul></div><h3>' + response[i].title + '</h3><cite>المصدر: <span>' + response[i].source + '</span> | <span>' + _timeToDate(response[i].date) + '</span></cite><p>' + response[i].description + '</p><div class="divoptn"><a id="read-article-'+i+'" target="_blank" href="'+ response[i].url +'" type="button" class="redbtn">اقرأ الموضوع كاملاً</a>&nbsp;</div></div></div>'
		}
		target.setContent(html);
	});
}

/**
 * Shows the details of a certain slider item
 *
 * @param INTEGER id, The ID of the target DIV that contains the details for the target slider item
 * @return VOID, Nothing to be returned, only display the detailed DIV according to its slider item ID
 */
function showDetails(id) {
	YUI().use("node", "anim", function(Y) {
		// Setup the paginator
		Y.one("#tew-numbers").setContent('<span>'+(id + 1)+'</span> من <span>'+ (numItems) +'</span>');
		if(id == 0) {
			Y.one("#tew-prev").setStyle("display", "none");
			Y.one("#tew-prev-empty").setStyle("display", "block");
			Y.one("#tew-next").setStyle("display", "block");
			Y.one("#tew-next-empty").setStyle("display", "none");
		} else if ((id + 1) == numItems) {
			Y.one("#tew-next").setStyle("display", "none");
			Y.one("#tew-next-empty").setStyle("display", "block");
			Y.one("#tew-prev").setStyle("display", "block");
			Y.one("#tew-prev-empty").setStyle("display", "none");
		} else {
			Y.one("#tew-prev").setStyle("display", "block");
			Y.one("#tew-next-empty").setStyle("display", "none");
			Y.one("#tew-next").setStyle("display", "block");
			Y.one("#tew-prev-empty").setStyle("display", "none");
		}
		paginator = id + 1;

		var tewDriver = Y.one("#tew-driver");
		var sliderItem = Y.one("#outer-div-"+id);
		var detailsItem = Y.one("#details-item-"+id);
		var detailsItems = Y.all(".details-item-class");
		var detailsHolder = Y.one("#details-holder");
		var detailsButtom = Y.one(".ymk_tew_boxbtm");
		var detailsContent = Y.one("#ymk-tew-content");
		tewDriver.setStyle("height", 440);
		Y.one("#ymk-tew-over").removeClass("slidtails");
		Y.one("#ymk-tew-over").removeClass("slidover");
		Y.one("#ymk-tew-over").addClass("slidclose");
		detailsHolder.setStyle("display", "block");
		detailsButtom.setStyle("display", "block");
		detailsContent.setStyle("display", "block");
		detailsItems.setStyle("display", "none");
		detailsItem.setStyle("height", "0");
		detailsItem.setStyle("display", "inline-block");
		var tewAnim = new Y.Anim({
			node: "#details-item-"+id,
			from: {height: 0},
			to: {height: 178},
			easing: Y.Easing.easeOut,
			duration: 2
		});
		tewAnim.run();
		rootStatus = false;
		if (paginator >= 1) {
			paginator = id;
		}
	});
}

/**
 * Function to format timestamp into human dates
 *
 * @param INTEGER time, The time stamp needed to be converted
 * @return STRING, A string that represents the formated timestamp in a human readable format
 */
function _timeToDate(time) {
	var tewDate = new Date(time * 1000);
	var months = ['1','2','3','4','5','6','7','8','9','10','11','12'];
	var year = tewDate.getFullYear();
	var month = months[tewDate.getMonth()];
	var date = tewDate.getDate();
	var hour = tewDate.getHours();
	if (hour == 0) {hour = '00';}
	var min = tewDate.getMinutes();
	if (min == 0) {min = '00';}
	var sec = tewDate.getSeconds();
	var time = 'التاريخ: '+date+'/'+month+'/'+year+' الساعة '+hour+':'+min+' بتوقيت غرينتش';
	return time;
}

/**
 * Function to display the driver DIV
 *
 * @return VOID, Nothing to be returned, only display the driver DIV
 */
function _showDriver() {
	YUI().use("node", "transition", "cookie", function(Y) {
		var cookieVal = Y.Cookie.get("yahoo_tew");
		Y.one("#tew-driver").setStyle("height", "0");
		Y.one("#tew-driver").setStyle("display", "block");
		Y.one("#tew-driver-loading").hide("fadeOut", function() {
			if (cookieVal === null) {
				Y.Cookie.set("yahoo_tew", "half", {expires: new Date("January 12, 2025"), path: "/"});
				Y.one("#tew-driver").setStyle("height", "209");
			} else {
				if (cookieVal == "half") {
					Y.one("#tew-driver").setStyle("height", "209");
				} else {
					Y.one("#tew-driver").setStyle("display", "none");
					Y.one("#tew-opener").setStyle("display", "block");
				}
			}
		});
	});
}

// Tracking tool initialization
document.write(unescape("%3Cscript src='http://us.js.yimg.com/lib/rapid/rapid_2.2.0.js' type='text/javascript'%3E%3C/script%3E"));
function initTracker(counter) {
	var trackedIds = new Array();
	var fixedTrackingIds = ["right-button-id", "left-button-id", "tew-opener", "tew-closer", "tew-prev", "tew-next"];
	var liTrackingIds = [counter];
	var spanTrackingIds = [counter];
	var readArticleTrackedIds = [counter];
	var relatedArticlesTrackedIds = [counter];
	for (i = 0; i <= counter; i++) {
		liTrackingIds[i] = "inside-"+i;
		spanTrackingIds[i] = "marrow-"+i;
		readArticleTrackedIds[i] = "read-article-"+i;
		relatedArticlesTrackedIds[i] = "related-article-"+i;
	}
	trackedIds = trackedIds.concat(fixedTrackingIds).concat(liTrackingIds).concat(spanTrackingIds).concat(readArticleTrackedIds).concat(relatedArticlesTrackedIds);
	YUI().use("node", function (Y) {
		Y.on('domready',function(){
			var keys = {A_pn:'TEW Sport4EVER'};
			var conf = {
				keys:keys,
				lt_attr:'id',
				client_only:0,
				spaceid:spaceId,
				ywa:{project_id:projectId},
				tracked_mods:trackedIds,
				track_lv:true
			};
			var ins = new YAHOO.i13n.Track(conf);
			ins.init();
		});
	});
}

