﻿//////////////////////////
//Slider scripts
//////////////////////////
var currentEffect;
var currentContainer = 'contentContainer';
var animating = false;
try {
    scroll('content', 0);
} catch(err) { }
     
function scroll(target, value) {
    if(value > 0) {
        try {
            dcsMultiTrack('DCS.dcsuri','/presspass/events/ces/tracking/default.aspx','WT.ti','sliderDownArrow_clicked');
        } catch(err) { }
    } else if(value < 0) {
        try {
            dcsMultiTrack('DCS.dcsuri','/presspass/events/ces/tracking/default.aspx','WT.ti','sliderUpArrow_clicked');
        } catch(err) { }
    }
    var currentLocation = parseInt(document.getElementById(target).style.top);
    var difference = parseInt(document.getElementById(target).offsetHeight) - parseInt(document.getElementById(currentContainer).style.height)
    if(difference > 0) {
        document.getElementById('scrollUp').style.background = "Url(/presspass/events/ces/_resources/images/upArrow.gif) no-repeat center center #F0F0F0";
        document.getElementById('scrollUp').style.cursor = "pointer";
        document.getElementById('scrollDown').style.background = "Url(/presspass/events/ces/_resources/images/downArrow.gif) no-repeat center center #F0F0F0";
        document.getElementById('scrollDown').style.cursor = "pointer";
        if(value < 0) {
            if(!animating) {
                animating = true;
                if(currentLocation + value > -difference) {
                    currentEffect = new Effect.Move(target, { y: value, duration:.5, afterFinish:setAnimating });
                } else {
                    currentEffect = new Effect.Move(target, { y: (value - (currentLocation + difference)) - value, duration:.5, afterFinish:setAnimating });
                    document.getElementById('scrollDown').style.background = "#F0F0F0";
                    document.getElementById('scrollDown').style.cursor = "auto";
                }
            }
        } else if(value >= 0) {
            if(!animating) {
                animating = true;
                if(currentLocation + value < 0) {
                    currentEffect = new Effect.Move(target, { y: value, duration:.5, afterFinish:setAnimating });
                } else {
                    currentEffect = new Effect.Move(target, { y: -currentLocation, duration:.5, afterFinish:setAnimating });
                    document.getElementById('scrollUp').style.background = "#F0F0F0";
                    document.getElementById('scrollUp').style.cursor = "auto";
                }
            }
        }
    } else {
        document.getElementById('scrollUp').style.background = "#F0F0F0";
        document.getElementById('scrollUp').style.cursor = "auto";
        document.getElementById('scrollDown').style.display = "none";
    }
    return false;
}

function setAnimating() {
    animating = false;
}
////////////////////////////
//AJAX feed reader
////////////////////////////
var targetFeedContainer;
var targetTwitterContainer;
var RSSRequestObject = false;
if (window.XMLHttpRequest) {
	RSSRequestObject = new XMLHttpRequest();
}
if (window.ActiveXObject) {
	RSSRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
}

function RSSRequest(url, target) {
    targetFeedContainer = target;
	document.getElementById(target).innerHTML = "Loading feeds ...";
	RSSRequestObject.open("GET", url , true);
	RSSRequestObject.onreadystatechange = ReqChange;
	RSSRequestObject.send(null); 
}

function RSSRequestTwitter(url, target) {
    targetTwitterContainer = target;
	document.getElementById(target).innerHTML = "Loading feeds ...";
	RSSRequestObject.open("GET", url , true);
	RSSRequestObject.onreadystatechange = ReqChangeTwitter;
	RSSRequestObject.send(null); 
}


function ReqChange() {
	if (RSSRequestObject.readyState==4) {
		if (RSSRequestObject.responseText.indexOf('invalid') == -1) 
		{ 	
			var node = RSSRequestObject.responseXML.documentElement; 
			var channel = node.getElementsByTagName('channel').item(0);
			var title = channel.getElementsByTagName('title').item(0).firstChild.data;
			var link = channel.getElementsByTagName('link').item(0).firstChild.data;
			
			var content = '';
		
			var items = channel.getElementsByTagName('item');
			for (var n=0; n < items.length; n++) {
			    var itemTitle = items[n].getElementsByTagName('title').item(0).firstChild.data;
			    var itemLink = items[n].getElementsByTagName('link').item(0).firstChild.data;
			    content += '<div class="feedItem"><a href="/presspass/silverlightApps/videoplayer2/redirect.aspx?contentId=' + escape(itemLink) + '" target="_blank">' + itemTitle + '</a></div>';
			}
			document.getElementById(targetFeedContainer).innerHTML = content;
		}
		else {
			document.getElementById(targetFeedContainer).innerHTML = "There was an error requesting the feed.";
		}
        RSSRequestTwitter('http://services.social.microsoft.com/feeds/feed/?query=ns/SocialBookmarking/eq/ns/ForumThreads/eq/and&user=Microsoft+at+CES+on+Twitter&count=100&sort=Recency','channel_mainContent_twitterFeed_feedContainer');
	}
}

function ReqChangeTwitter() {
	if (RSSRequestObject.readyState==4) {
		if (RSSRequestObject.responseText.indexOf('invalid') == -1) 
		{ 	
			var node = RSSRequestObject.responseXML.documentElement; 
			var channel = node.getElementsByTagName('channel').item(0);
			var title = channel.getElementsByTagName('title').item(0).firstChild.data;
			var link = channel.getElementsByTagName('link').item(0).firstChild.data;
			
			var content = '';
		
			var items = channel.getElementsByTagName('item');
			for (var n=0; n < items.length; n++) {
			    var itemTitle = items[n].getElementsByTagName('title').item(0).firstChild.data;
			    var itemLink = items[n].getElementsByTagName('link').item(0).firstChild.data;
			    content += '<div class="feedItem"><a href="/presspass/silverlightApps/videoplayer2/redirect.aspx?contentId=' + escape(itemLink) + ' target="_blank">' + itemTitle + '</a></div>';
			}
			document.getElementById(targetTwitterContainer).innerHTML = content;
		}
		else {
			document.getElementById(targetTwitterContainer).innerHTML = "There was an error requesting the feed.";
		}
	}
}




////////////////////////////
//Scrollbar scripts
////////////////////////////
var dragObj = null;
var scrollTarget = null;
var targetContent = null;
var isDragging = false;
var mouseX = 0;
var mouseY = 0;
var offsetX = 0;
var offsetY = 0;
var minY = 0;
var maxY = 217;


//window.onmousewheel = document.onmousewheel = global_wheel;
try {
    if(document.getElementById('channel_mainContent_twitterFeed_feedContainer').offsetHeight > maxY) {
        document.getElementById('channel_mainContent_twitterFeed_thumb').onmousedown = twitter_scrollBar_init;
    } else {
        document.getElementById('channel_mainContent_twitterFeed_scrollBar').style.display = "none";
    }
} catch(err) { }
try {
    if(document.getElementById('channel_mainContent_blogFeed_feedContainer').offsetHeight > maxY) {
        document.getElementById('channel_mainContent_blogFeed_thumb').onmousedown = feed_scrollBar_init;
    } else {
        document.getElementById('channel_mainContent_blogFeed_scrollBar').style.display = "none";
    }
} catch(err) { }

function twitter_scrollBar_init(e) {
    try {
        dcsMultiTrack('DCS.dcsuri','/presspass/events/ces/tracking/default.aspx','WT.ti','twitter_scrollBar_clicked'); 
    } catch(err) { }

    if (!e) { var e = window.event; }
    if (e.target) {
        dragObj = e.target ;
    } else if (e.srcElement) {
        dragObj = e.srcElement;
    }
    if (dragObj.nodeType == 3) {
        dragObj = dragObj.parentNode;
    }
    
    targetContent = document.getElementById('channel_mainContent_twitterFeed_feedContainer');
    
    setMouseCoordinates(e);
    
    isDragging = true;
    offsetX = mouseX - parseInt(dragObj.style.left);
    if(parseInt(dragObj.style.top).toString() != "NaN") {
        offsetY = mouseY - parseInt(dragObj.style.top);
    } else {
        offsetY = mouseY;
    }
    global_init();
    return false;
}

function feed_scrollBar_init(e) {
    try {
        dcsMultiTrack('DCS.dcsuri','/presspass/events/ces/tracking/default.aspx','WT.ti','feed_scrollBar_clicked');
    } catch(err) { }
    if (!e) { var e = window.event; }
    if (e.target) {
        dragObj = e.target ;
    } else if (e.srcElement) {
        dragObj = e.srcElement;
    }
    if (dragObj.nodeType == 3) {
        dragObj = dragObj.parentNode;
    }
    
    targetContent = document.getElementById('channel_mainContent_blogFeed_feedContainer');
    
    setMouseCoordinates(e);
    
    isDragging = true;
    offsetX = mouseX - parseInt(dragObj.style.left);
    if(parseInt(dragObj.style.top).toString() != "NaN") {
        offsetY = mouseY - parseInt(dragObj.style.top);
    } else {
        offsetY = mouseY;
    }
    global_init();
    return false;
}

function global_init() {
    document.onmouseup = global_mouseup;
    document.onmousemove = global_mousemove;
}

/*
function global_wheel(e) {
    if (!e) { var e = window.event; }
    if (e.target) {
        targetContent = e.target ;
    } else if (e.srcElement) {
        targetContent = e.srcElement;
    }
    if (targetContent.nodeType == 3) {
        targetContent = targetContent.parentNode;
    }
    if(targetContent.id == "channel_mainContent_blogFeed_feedContainer" || targetContent.id == "channel_mainContent_twitterFeed_feedContainer") {
        var delta = 0;
        if(targetContent.id == "channel_mainContent_blogFeed_feedContainer") {
            dragObj = document.getElementById("channel_mainContent_blogFeed_thumb");
        } else {
            dragObj = document.getElementById("channel_mainContent_twitterFeed_thumb");
        }
        if (e.wheelDelta) { 
            delta = e.wheelDelta/120;
            if (window.opera) {
                delta = -delta;
            }
        } else if (e.detail) { 
            delta = -e.detail/3;
        }
        if (delta) {
            var targetY = delta * -30;
            var scrollPercentage = 0;
            if(parseInt(dragObj.style.top).toString() != "NaN") {
                 scrollPercentage = parseInt(dragObj.style.top) / maxY;
            }
            if(targetY >= minY && targetY <= maxY) {
                dragObj.style.top = targetY + "px";
                targetContent.style.top = -scrollPercentage * (parseInt(targetContent.offsetHeight) - maxY) + "px";
            } else {
                if(targetY < minY) {
                    dragObj.style.top = minY + "px";
                    targetContent.style.top = "0px";
                } else {
                    dragObj.style.top = maxY + "px";
                }
            }
        }
        if (e.preventDefault) {
            e.preventDefault();
        }
    }
    return false;
}
*/
function global_mousemove(e) {
    if(isDragging) {
        if (!e) { var e = window.event; }
        setMouseCoordinates(e);
        var targetY = mouseY - offsetY;
        var scrollPercentage = 0;
        if(parseInt(dragObj.style.top).toString() != "NaN") {
             scrollPercentage = parseInt(dragObj.style.top) / maxY;
        }
        
        if(targetY >= minY && targetY <= maxY) {
            dragObj.style.top = targetY + "px";
            targetContent.style.top = -scrollPercentage * (parseInt(targetContent.offsetHeight) - maxY) + "px";
        } else {
            if(targetY < minY) {
                dragObj.style.top = minY + "px";
                targetContent.style.top = "0px";
            } else {
                dragObj.style.top = maxY + "px";
            }
        }
    }
    return false;
}

function global_mouseup(e) {
    document.onmouseup = null;
    document.onmousemove = null;
    if(isDragging) {
        isDragging = false;
    }
    return false;
}

function setMouseCoordinates(e) {
    if (!e) { var e = window.event; }
    if (e.pageX || e.pageY) {
        mouseX = e.pageX;
        mouseY = e.pageY;
    } else if (e.clientX || e.clientY) 	{
        mouseX = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
        mouseY = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
    }
}