﻿var isIE = document.all ? true : false;
var isOpera = navigator.userAgent.toLowerCase().indexOf('opera') != -1;
var tempX = 0;
var tempY = 0;
var startX = 0;
var pageView;
var viewStatus = "timeline";
var myWidth, myHeight;
var flash = null; // flash object
var userNavigation = false;
var pageHistory;
var assetPage;
var assetPageCB;
var checkFlashInterval;
var registerForBetaMessageType;

function OpenTimelineSettingsWindow(timelineID, isDefault) {
    if (isDefault == true) {
        PopIFrame('/Wizard/Timelines/DefaultTimeline.aspx', 943, 480)
    } else {
        PopIFrame('/Wizard/Timelines/timelineProperties.aspx?ID=' + timelineID, 943, 480)
    }
}

function AddAssetFromUrl(TimelineID) {
  PopIFrame('/Wizard/Sources/UploadWeb.aspx?IsStandAlone=true&TimelineID=' + TimelineID, 943, 480)
}

function AddAssetFromMyComputer(TimelineID) {
  PopIFrame('/Wizard/Sources/UploadGate.aspx?IsStandAlone=true&TimelineID=' + TimelineID, 943, 480)
}

function AddEmbededOnlineVideo(TimelineID) {
  PopIFrame('/Wizard/Sources/UploadVideo.aspx?IsStandAlone=true&TimelineID=' + TimelineID, 943, 480)
}

// initialize flash
function flashReady() {
  if (flash != null) return;
  flash = $get("timelineObject");
  //setTimeout(javascriptReady, 100);
}

function checkFlashIsReady() {
  if (flash == null) {
    if ($get("timelineObject") != null) {
      clearInterval(checkFlashInterval);
      flashReady();
    }
  }
}

function javascriptReady(){
  flash.javascriptReady();
}

function EnterWasClicked(e) {
    var KeyCode = 0;
    if (window.event) {
        KeyCode = window.event.keyCode;
    }
    else if (e) {
        KeyCode = e.which;
      }
    return (KeyCode == 13);
}

function UpdateNumOfRemainingInvitation(InvitesLeft) {
    $get('hrefBetaInvitations').innerHTML = InvitesLeft + " invitations left";
}
function SearchInFlash(SearchedText) {
  var timelineObject = $get("timelineObject");
  if (timelineObject != null) {
    if (timelineObject.search != null) { timelineObject.search(SearchedText); } else { }
  }
}
function newStuff_OnClick() {
  var timelineObject = $get("timelineObject");
  if (timelineObject != null) {
    if (timelineObject.newStuffClicked != null) {
      timelineObject.newStuffClicked();
    } else { }
  }
}
function newStuff_OnOpened() {
  $get('new_stuff').className = 'new_stuff_on';
}
function newStuff_OnClose() {
  $get('new_stuff').className = 'new_stuff';
}
function newStuffCountUpdate(str) {
  $get("newStuffCount").innerHTML = "(" + str + ")";
}


function LoadTimeline(ID, Title, ownerID) {
  //$get("timelineObject").changeTimeline(ID, Title, ownerID)
  var timelineObject = $get("timelineObject");
  if (timelineObject != null) {
    if (timelineObject.changeTimeline != null) { timelineObject.changeTimeline(ID, Title, ownerID); } else { }
  }
}

function UpdateStatCounter(timelineID, title) {
    var IframeSrc = WebsiteBaseURL + "StatCounter/" + timelineID + '/' + ReplaceAll(title, " ", "_"); ;
    try {
        document.getElementById('StatCounterIframe').src = IframeSrc;
    } catch (e) {
    }
}

var sizeConsts = {
    UNDER_TOP_STRIP_HEIGHT: 29,
    TOP_STRIP_HEIGHT: 61
}

function ReplaceAll(SearchedString, Replace, With) {
    if (With.indexOf(Replace) == (-1)) {
        while (SearchedString != SearchedString.replace(Replace, With)) {
            SearchedString = SearchedString.replace(Replace, With)
        }
    } else {
        alert('Error: [' + With + '] contains [' + Replace + ']');
    }
  return SearchedString;
}


function pageResize() {
    if ($get("under_top_strip") == null)
        sizeConsts.UNDER_TOP_STRIP_HEIGHT = 0;
    myHeight = isIE ? document.documentElement.offsetHeight - 1 : window.innerHeight;
    myWidth = isIE ? document.documentElement.offsetWidth : window.innerWidth;
    var newHeight = (myHeight - sizeConsts.UNDER_TOP_STRIP_HEIGHT - sizeConsts.TOP_STRIP_HEIGHT);
    if (newHeight < 400) { newHeight = 400 }
    $get("main").style.height = newHeight + "px";
    if (typeof (assetPage) == "object") {
      assetPage.setHeight(newHeight);
      if (pageView.currentState == pageView.states.ASSET_PAGE) {
        try { markerController.pageResize(); } catch (e) { }
        return;
      }
    }
    if (viewStatus == "timeline") {
      $get("timeline_container").style.height = newHeight + "px";
    }
    // IE fix - DO NOT REMOVE THESE LINES
    $get("main").style.display = "none";
    $get("main").style.display = "block";
    $get("PageShader_container").style.height = (sizeConsts.UNDER_TOP_STRIP_HEIGHT + sizeConsts.TOP_STRIP_HEIGHT - 1) + "px";

    // added by tomer.K
    //alert(newHeight)
    resizeHeader();
      
}

function getTopStripStableWidth() {
    var stripWidth = 0;
    try {
        stripWidth = $get("upload_top").clientWidth;
        stripWidth += $get("network_top").clientWidth;
        stripWidth += $get("search_tab").clientWidth;
    } catch (e) {
        // ignore
    }
    stripWidth += 40;
    return stripWidth;
}

function pageLoaded() {
  try {
    pageResize();

    document.onmousemove = documentMouseMove;
    window.onresize = pageResize;
    document.onmouseup = pageMouseUp;
    checkFlashInterval = setInterval(checkFlashIsReady, 100);
    $get("top_strip").style.display = "block";
    try {
      $get("under_top_strip").style.display = "block";
    } catch (e) {
      // ignore
    }
    try {
      assetPage = new AssetPage();
    } catch (e) {
      // ignore
    }
    try {
      markerController = new MarkerController();
    } catch (e) {
      // ignore
    }
    pageView = new PageView();
    setTimeout(startHistory, 500);
    } catch (e) {
    // ignore 
  }
}

function Logout_onClick() {
  if (window.opener != null) {
    if (window.opener.IAmAllofMe == true) {
      window.opener.logout_Click();
      window.close();
    }
  }
}

function startHistory() {
  pageHistory = window.location.hash;
  Sys.Application.add_navigate(onNavigate);
}

function onNavigate(sender, e) {
  var state = e.get_state();
  var navMode = state.NavigationMode || 0;
  switch (navMode) {
    case "AssetPage":
      if (pageView.currentState != pageView.states.ASSET_PAGE) {
        balloonMaximizeTweenFinished();
      }
      assetPage.completeNavigation(state.NavigationType, state.AssetID);
      break;
    case 0:
      if (pageView.currentState == pageView.states.ASSET_PAGE)
        assetPage.close();
      break;
      //nothing
  }
}

// Code added by Tal for testing:

function balloonMaximizeTweenFinished(controllToOpen) {
  flash.setApplicationMode("assetNavigation");
  assetPage.balloonMaximized(controllToOpen);
  pageView.setView("ASSET_PAGE");
}

function balloonMaximizeClick() {
    //assetPage.prepareContents("balloon", assetPageConsts.ASSET);
}

function enableDragSelect(enable) {
    //if the browser is IE4+
  document.onselectstart = enable ? new Function("return false") : null;

    //if the browser is NS6
    if (window.sidebar) {
      document.onmousedown = enable ? new Function("return false") : null;
      document.onclick = enable ? new Function("return false") : null;
    }
}

function pageMouseUp(e) {
    try {
        assetPage.pageMouseUp(e);
    } catch (e) {
        //nothing;
    }
    try {
        markerController.mouseUp();
    } catch (e) {
        //nothing;
    }
}

function documentMouseMove(e) {
  // global myWidth, myHeight
  var curWidth;
  if (isIE) { // grab the x-y pos.s if browser is IE
    tempX = event.clientX + document.body.scrollLeft;
    tempY = event.clientY + document.body.scrollTop;
  } else {  // grab the x-y pos.s if browser is NS
    tempX = e.pageX;
    tempY = e.pageY;
  }
  // catch possible negative values in NS4
  if (tempX < 0) {tempX = 0; }
  if (tempY < 0) {tempY = 0; }
  try {
    if (assetPage != null) {
      if (assetPage.timeSlider != null) {
        assetPage.timeSlider.timestampDrag();
      }
    }
  } catch (e) {
    //nothing;
  }
  try {
    markerController.mouseMove();
  } catch (e) {
    //nothing;
  }
  return true;
}

if (/Safari/i.test(navigator.userAgent)) { //Test for Safari
  var _timer = setInterval(function() {
    if (/loaded|complete/.test(document.readyState)) {
      clearInterval(_timer)
      pageLoaded() // call target function
    }
  }, 10)
} else {
window.onload = pageLoaded;
}

// Page view states class

function PageView() {
    this.states = {
        TIMELINE: 1,         // timeline
        ASSET_PAGE: 2        // Asset Page
    }
    this.currentState = this.states.TIMELINE;
  }

  PageView.prototype.setView = function(curView) {
    var newView = this.states[curView];
    if (this.currentState == this.states.ASSET_PAGE) {
      if (pageHistory == "") pageHistory = "#"
      window.location.hash = pageHistory;
      assetPage.idleView();
      // resizing:
      myHeight = isIE ? document.documentElement.offsetHeight : window.innerHeight;
      myWidth = isIE ? document.documentElement.offsetWidth : window.innerWidth;
      var newHeight = (myHeight - sizeConsts.UNDER_TOP_STRIP_HEIGHT - sizeConsts.TOP_STRIP_HEIGHT);
      $get("timeline_container").style.height = newHeight + "px";
      // IE fix - DO NOT REMOVE THESE LINES
      /*$get("main").style.display = "none";
      $get("main").style.display = "block";*/
      try {
        $get("under_top_strip").style.display = "block";
        $get("hide_when_assetpage_1").style.display = "inline";
        $get("hide_when_assetpage_2").style.display = "inline";
      } catch (e) {
        // ignore
      }
      assetPage.hide();
      pageResize();
    }
    switch (newView) {
      case this.states.TIMELINE:
        break;

      case this.states.ASSET_PAGE:
        pageHistory = window.location.hash;
        var timelineHeight = $get("timeline_container").offsetHeight;
        $get("timeline_container").style.height = assetPageConsts.BOTTOM_SHORT + "px";
        try {
          $get("under_top_strip").style.display = "none";
          $get("hide_when_assetpage_1").style.display = "none";
          $get("hide_when_assetpage_2").style.display = "none";
        } catch (e) {
          // ignore
        }
        assetPage.show();
        assetPage.setHeight(timelineHeight);
        break;
    }
    this.currentState = newView;
  }
// Page view states class [end]


function openWidgetWindow() {
  var widgetNewWin = window.open("/Widget/Wizard.aspx", 'widgetWin', 'height=700,width=905,toolbar=no,scrollbars=auto,resizable=yes,status=no,copyhistory=no,location=no,menubar=no');
  if (widgetNewWin) {
    widgetNewWin.focus();
  } else {
    var swfId = "timelineObject";
    getSwf(swfId).openWindowFromSwf("/Widget/Wizard.aspx");
  }
  
}

function openUploadFromMyComputerWindow() {
    PopIFrame('/Wizard/Sources/UploadGate.aspx', 943, 480)
}

function openServicesListWindow() {
    PopIFrame('/Wizard/Sources/ServiceList.aspx', 943, 480)
}

function openConnectToServiceWindow(serviceId) {
    PopIFrame('/Wizard/Sources/SubscriptionPage.aspx?ServiceID=' + serviceId, 943, 480)
}

function openHtmlWindow(url) {
    var swfId = "timelineObject";
    switch (url) {
        case "terms":
            var newWin = window.open("/terms/terms.htm", 'termsWin', 'height=700,width=730,toolbar=no,scrollbars=yes,resizable=yes,status=no,copyhistory=no,location=no,menubar=no');
            var pageUrl = "/terms/terms.htm";
            break;
        case "privacy":
            var newWin = window.open("/terms/privacy.htm", 'termsWin', 'height=700,width=730,toolbar=no,scrollbars=yes,resizable=yes,status=no,copyhistory=no,location=no,menubar=no');
            var pageUrl = "/terms/privacy.htm";
            break;
        case "TimelinePlayer":
            var newWin = window.open("/Members/TimelinePlayer.aspx", 'termsWin', 'height=650,width=900,toolbar=no,scrollbars=yes,resizable=yes,status=no,copyhistory=no,location=no,menubar=no');
            var pageUrl = "/Members/TimelinePlayer.aspx";
            break;
        case "TalkToUsLink":
            var newWin = window.open("/terms/TalkToUs.aspx", 'termsWin', 'height=700,width=730,toolbar=no,scrollbars=yes,resizable=yes,status=no,copyhistory=no,location=no,menubar=no');
            var pageUrl = "/terms/TalkToUs.aspx";
            break;
        case "AboutUs":
            PopIFrame('/Misc/AboutUs.htm', 660, 420)
            timelineObjectEnabled(false);
            var pageUrl = "";
            break;
        default:
            var newWin = window.open(url, '', 'height=420,width=480,toolbar=no,scrollbars=no,resizable=yes,status=no,copyhistory=no,location=no,menubar=no');
            var pageUrl = "url";
    }
    if (newWin) {
        newWin.focus();
    } else {
        if (pageUrl != "") {
            getSwf(swfId).openWindowFromSwf(pageUrl);
        }
    }
}

function getSwf(id) {
    if (navigator.appName.indexOf("Microsoft") != -1) {
        return window[id];
    }
    else {
        return document[id];
    }
}


function closeAboutAllofMe() {
    CloseIFrame();
    timelineObjectEnabled(true);
}

function timelineObjectEnabled(value) {
    //alert("timelineObjectEnabled: " + value);

    var timelineObject = $get("timelineObject");
    if (timelineObject != null) {
        if (timelineObject.pageEnabled != null) { timelineObject.pageEnabled(value); } else { }
    }

    if (value == true) {
      $get("PageShader_container").style.display = "none";
    } else {
      $get("PageShader_container").style.display = "block";
  }
}

// Window Header Links Related
function openSubscribeWindow(messageType) {
    var navAgent = navigator.userAgent;
    var timelineObject = $get("timelineObject");
    if ((navAgent.indexOf('Safari') == -1) || (navAgent.indexOf('Opera') == -1)) {
        if (timelineObject != null) { timelineObject.style.height = "1px"; }
    }

    //$get("registerPopupBehavior_backgroundElement").style.height = (sizeConsts.UNDER_TOP_STRIP_HEIGHT + sizeConsts.TOP_STRIP_HEIGHT - 1) + "px";

    var regPopupObjName = ($get('registerPopup') ? "registerPopup" : "ctl00_body_registerPopup");
    $get(regPopupObjName).innerHTML = '<iframe id="registerPopupIframe" frameborder="no" scrolling="no" width="943" height="481" scrolling="no" src=""></iframe>';
    $get('registerPopupIframe').src = '/RegisterForBeta.aspx';
    //$get('registerPopup').innerHTML = '<iframe id="registerPopupIframe" frameborder="no" scrolling="no" width="943" height="481" scrolling="no" src=""></iframe>';
    //$get('registerPopupIframe').src = '/RegisterForBeta.aspx';
    
    $find('registerPopupBehavior').show();
    registerForBetaMessageType = messageType;
    if (timelineObject != null) {
        if (timelineObject.pageEnabled != null) { timelineObject.pageEnabled(false); } else { }
    }
}

function closeSubscribeWindow() {
    var timelineObject = $get("timelineObject");
    var navAgent = navigator.userAgent;
    if ((navAgent.indexOf('Safari') == -1) || (navAgent.indexOf('Opera') == -1)) {
        if (timelineObject != null) { timelineObject.style.height = "100%"; }
    }
    var regPopupObjName = ($get('registerPopup') ? "registerPopup" : "ctl00_body_registerPopup");    
    //$get(regPopupObjName).innerHTML = ''
    $find('registerPopupBehavior').hide();
    if (timelineObject != null) {
        if (timelineObject.pageEnabled != null) { timelineObject.pageEnabled(true); } else { }
    }
    $get('PageShader_container').style.display = 'none';
    $get(regPopupObjName).innerHTML = ''
}

function showHelp() {
    helpMode(true, true)
}
function hideHelp() {
    helpMode(false, true);
}
function helpMode(helpIsOn, notifyFlash) {
  if (notifyFlash == null) { notifyFlash = false }
    if (helpIsOn) {
    $get('helpButton').className = 'helpOn';
    //$get('helpButton').innerHTML = '&nbsp;<a id="help" href="Javascript:hideHelp()" class="HeaderLink">Help is On</a>';
    $get('Off').style.display = 'none'
    $get('On').style.display = 'inline'
  } else {
    $get('helpButton').className = 'helpOff';
    //$get('helpButton').innerHTML = '&nbsp;<a id="help" href="Javascript:showHelp()" class="HeaderLink" >Help is Off</a>';
    $get('On').style.display = 'none'
    $get('Off').style.display = 'inline'
  }
    var timelineObject = $get("timelineObject");
    if (timelineObject != null) {
      if (timelineObject.helpMode != null) {
        if (notifyFlash) {
          timelineObject.helpMode(helpIsOn)
        }
      } else { }
    }
}

/* heade update */
var headerObj;
var isDefaultGlobal;
var ownPageGlobal = true;

function Escape(Str) {
    Str = ReplaceAll(Str, '<', '&lt;');
    Str = ReplaceAll(Str, '>', '&gt;');
    return Str;
}

function UnEscape(Str) {
    Str = ReplaceAll(Str, '&lt;', '<');
    Str = ReplaceAll(Str, '&gt;', '>');
    return Str;
}

function updateHeader(Obj, isDefault, OwnPage, inOnResize) {

  var pDisableHeaderUpdate = false;
  if (DisableHeaderUpdate == true) { pDisableHeaderUpdate = true; }
  
  $get('userName').style.display = 'inline';
  $get('userTag').style.display = 'inline'; 

  if (inOnResize != null) {isDefault = isDefaultGlobal;}
  if (OwnPage != null) {ownPageGlobal = OwnPage}

  isDefaultGlobal = isDefault;
  inOnResize = (inOnResize == null ? false : inOnResize);
  headerObj = Obj;
  var iconHTML = "";
  var nameHTML = "";
  var titleStr = "";
  var subTitleStr = "";
  var urlStr = "/Timeline/Misc/";
  var numHeaderObjects = headerObj.length
  //debugger;
  var wrapperWidth = 500 - (numHeaderObjects * 55);
  $get('userNameWraper').style.width = wrapperWidth + 'px'; /*(550 - (numHeaderObjects * 55)) + 'px';*/

  if (pDisableHeaderUpdate == false) {
      $get('userIconsList').innerHTML = "";
  }

  if (numHeaderObjects == 1) {
      
    if (headerObj[0].isMyTimeline) {
      if (headerObj[0].isDefault) {
        iconHTML = '<div class="user_icon" title="' + headerObj[0].title + '" onclick="PopIFrame(\'/Wizard/Profile/Avatar.aspx\', 943, 480)" style="cursor: pointer"><img src="' + headerObj[0].icon + '" class="avatar" /></div>'
      } else {
        iconHTML = '<div class="user_icon" title="' + headerObj[0].title + '" onclick="PopIFrame(\'/Wizard/Timelines/timelineProperties.aspx?ID=' + headerObj[0].id + '\', 943, 480)" style="cursor: pointer"><img src="' + headerObj[0].icon + '" class="avatar" /></div>'
      }
    } else {
      iconHTML = '<div class="user_icon" title="' + headerObj[0].title + '"><img src="' + headerObj[0].icon + '" class="avatar" /></div>'
    }
    titleStr = headerObj[0].title;
    titleStr = Escape(titleStr);
    
    if (isDefault != true) {
        if (titleStr.toLowerCase().indexOf("the ") == (-1)) {
          nameHTML = "AllofMe and the " + titleStr + " Timeline";        
        } else {
          nameHTML = "AllofMe and " + titleStr + " Timeline";        
        }
      } else {
        nameHTML = titleStr;
      }

      var currLocation = window.location.href;
      var searchedStr = "/Timeline/Misc/" + headerObj[0].id + "/"
      var i = currLocation.indexOf(searchedStr);

      if (i == (-1)) {
          urlStr = "/Timeline/Misc/" + headerObj[0].id + "/" + headerObj[0].title.replace(/ /g, "_") ;
      } else {
        urlStr = "";
      }

    } else {
  
      for (var i = 0; i < numHeaderObjects; i++) {

        if (headerObj[i].isMyTimeline) {
          if (headerObj[i].isDefault) {
            iconHTML = iconHTML + '<div class="user_icon" title="' + headerObj[i].title + '" onclick="PopIFrame(\'/Wizard/Profile/Avatar.aspx\', 943, 480)" style="cursor: pointer"><img src="' + headerObj[i].icon + '" class="avatar" /></div>'
          } else {
          iconHTML = iconHTML + '<div class="user_icon" title="' + headerObj[i].title + '" onclick="PopIFrame(\'/Wizard/Timelines/timelineProperties.aspx?ID=' + headerObj[i].id + '\', 943, 480)" style="cursor: pointer"><img src="' + headerObj[i].icon + '" class="avatar" /></div>'
          }
        } else {
          iconHTML = iconHTML + '<div class="user_icon" title="' + headerObj[i].title + '"><img src="' + headerObj[i].icon + '" class="avatar" /></div>'
        }
        //iconHTML = iconHTML + '<div class="user_icon" title="' + headerObj[i].title + '"><img src="' + headerObj[i].icon + '" class="avatar" /></div>'
        
        urlStr = urlStr + headerObj[i].id;
        titleStr = headerObj[i].title
        timelineIsDefault = headerObj[i].isDefault
        timelineIsMyTimeline = headerObj[i].isMyTimeline
        titleStr = Escape(titleStr);
        nameHTML = nameHTML + titleStr;
        
        if (i < numHeaderObjects - 1) {
          urlStr = urlStr + ".";
          nameHTML = nameHTML + " vs. ";
        } else {

            var currLocation2 = window.location.href;
            var i2 = currLocation2.indexOf(urlStr);
            if (i2 == (-1)) {
                urlStr = urlStr + "/" + nameHTML.replace(/ /g, "_");
            } else {
                urlStr = ""
            }
          nameHTML = nameHTML + " Timeline";
        }
      }
    }

    if (numHeaderObjects > 0) {
        if (numHeaderObjects > 1) {
            var userNameBlockHeight = 58;
            $get('userTag').style.display = 'none';
        } else {
            var userNameBlockHeight = 29;
            if (!inOnResize) {
                subTitleStr = headerObj[0].subTitle
                subTitleStr = Escape(subTitleStr);
                $get('userTag').innerHTML = subTitleStr;
                $get('userTag').style.display = 'inline';
            }
        }
    }

  if (pDisableHeaderUpdate == false) {
      $get('userIconsList').innerHTML = iconHTML;
      $get('userName').innerHTML = nameHTML;
      document.title = UnEscape(nameHTML);

      if (!ownPageGlobal) {
          if (urlStr != "") {
              var lastChar = urlStr.substring(urlStr.length - 1)
              if (lastChar == '.') { urlStr = urlStr.substring(0, urlStr.length - 1) }
              window.location.hash = '#' + urlStr
          }
      }
  }
  
  $get("userName").style.fontSize = '22px'
  while (($get("userName").offsetHeight > userNameBlockHeight) && ($get("userName").style.fontSize.substring(0, 2) > 18)) {
    $get("userName").style.fontSize = ($get("userName").style.fontSize.substring(0, 2) - 1) + 'px'
  }

  var isResized = false;
  if (pDisableHeaderUpdate == false) {
      while (($get("userName").offsetHeight > userNameBlockHeight) || ($get('userName').offsetWidth > wrapperWidth)) {
          isResized = true;
          $get('userName').innerHTML = $get('userName').innerHTML.substring(0, $get('userName').innerHTML.length - 1)
      }
  }

  
  if (($get('userTag').innerHTML != "") && (!inOnResize)) {
    var shortenSub = false;

    while (($get('userTag').offsetWidth > wrapperWidth) || ($get('userTag').offsetHeight > 25)) {
      $get('userTag').innerHTML = $get('userTag').innerHTML.substring(0, $get('userTag').innerHTML.length - 1)
      shortenSub = true;
    }
    if (shortenSub) {
      $get('userTag').innerHTML = $get('userTag').innerHTML + "..."
    }
  }
  if (isResized) {
    $get('userName').innerHTML = $get('userName').innerHTML.substring(0, $get('userName').innerHTML.length - 3) + "..."
  }
}


function resizeHeader() {
  if (headerObj != undefined) {
    updateHeader(headerObj, null, true)
  }
}

// ********* Delegate [start]

function ContextDelegate(that, thatMethod) {
  return function() { return thatMethod.call(that); }
}

// ********* Delegate [end]

// ********* ContactCloud changes [start]

function updateContactDetails(userID, name) {
  if (ContactCloud[userID.toString()] != undefined) {
    ContactCloud[userID.toString()].Name = name;
  }
}

// ********* ContactCloud changes [end]

// cookies functions
function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
    return null;
}

/* search functions */
function searchInit() {
  $get('txtSearch').value = '';
}
function searchOnFocus(obj) {
  obj.style.backgroundImage = "none";
}
function searchOnClick(obj) {
  obj.style.backgroundImage = "none";
}
function searchOnBlur(obj) {
  if (obj.value == '') {
    obj.style.backgroundImage = "url('/Images/Common/empty_search_bg.png')"
    obj.style.backgroundRepeat = "no-repeat"
    $get('searchEnd').innerHTML = '<img src="/Images/Common/search_end.png" alt="" />';    
  }
}
function searchOnKey(obj) {
  if (obj.value != '') {
    $get('searchEnd').innerHTML = '<img src="/Images/Common/search_end_x.png" alt="" onclick="searchClear()" class="searchEnd_x" />';
  } 
}
function searchClear() {
  $get('txtSearch').value = '';
  $get('searchEnd').innerHTML = '<img src="/Images/Common/search_end.png" alt="" />';
  $get('txtSearch').style.backgroundImage = "url('/Images/Common/empty_search_bg.png')";
  $get('txtSearch').style.backgroundRepeat = "no-repeat";
  $get('txtSearch').blur();
  SearchInFlash($get('txtSearch').value)
}

// Social links for Timeline
function getSocialLinks() {
    return [{
        IconURL: "http://www.social-bookmark-script.de/img/bookmarks/digg_trans.gif",
        LinkURL: "http://digg.com/submit?phase=2&url=[URL]&bodytext=&tags=&title=[TITLE]",
        ToolTip: "Digg it!"
    }, {
        IconURL: "http://www.social-bookmark-script.de/img/bookmarks/del_trans.gif",
        LinkURL: "http://del.icio.us/post?v=2&url=[URL]&notes=&tags=&title=[TITLE]",
        ToolTip: "Add to del.icio.us"
    }, {
        IconURL: "http://www.social-bookmark-script.de/img/bookmarks/reddit_trans.gif",
        LinkURL: "http://reddit.com/submit?url=[URL]&title=[TITLE]",
        ToolTip: "Add to reddit.com"
    }, {
        IconURL: "http://www.social-bookmark-script.de/img/bookmarks/stumbleupon_trans.gif",
        LinkURL: "http://www.stumbleupon.com/submit?url=[URL]&title=[TITLE]",
        ToolTip: "Add to Stumbleupon"
    }, {
        IconURL: "http://www.social-bookmark-script.de/img/bookmarks/slashdot_trans.gif",
        LinkURL: "http://slashdot.org/bookmark.pl?url=[URL]&title=[TITLE]",
        ToolTip: "Add to slashdot.org"
    }, {
        IconURL: "http://www.social-bookmark-script.de/img/bookmarks/furl_trans.gif",
        LinkURL: "http://www.furl.net/storeIt.jsp?u=[URL]&keywords=&t=[TITLE]",
        ToolTip: "Add to furl.net"
    }, {
        IconURL: "http://www.social-bookmark-script.de/img/bookmarks/yahoo_trans.gif",
        LinkURL: "http://myweb2.search.yahoo.com/myresults/bookmarklet?t=[TITLE]&d=&tag=&u=[URL]",
        ToolTip: "Add to Yahoo"
    }, {
        IconURL: "http://www.social-bookmark-script.de/img/bookmarks/spurl_trans.gif",
        LinkURL: "http://www.spurl.net/spurl.php?v=3&tags=&title=[TITLE]&url=[URL]",
        ToolTip: "Add to spurl.net"
    }, {
        IconURL: "http://www.social-bookmark-script.de/img/bookmarks/google_trans.gif",
        LinkURL: "http://www.google.com/bookmarks/mark?op=add&hl=en&bkmk=[URL]&annotation=&labels=&title=[TITLE]",
        ToolTip: "Add to Google Bookmarks"
    }, {
        IconURL: "http://www.social-bookmark-script.de/img/bookmarks/blinklist_trans.gif",
        LinkURL: "http://www.blinklist.com/index.php?Action=Blink/addblink.php&Description=&Tag=&Url=[URL]&Title=[TITLE]",
        ToolTip: "Add to blinklist.com"
    }, {
        IconURL: "http://www.social-bookmark-script.de/img/bookmarks/blogmarks_trans.gif",
        LinkURL: "http://blogmarks.net/my/new.php?mini=1&simple=1&url=[URL]&content=&apublic-tags=&title=[TITLE]",
        ToolTip: "Add to blogmarks.net"
    }, {
        IconURL: "http://www.social-bookmark-script.de/img/bookmarks/technorati_trans.gif",
        LinkURL: "http://technorati.com/faves?add=[URL]&tag=",
        ToolTip: "Add to Technorati"
}];
}