﻿var $newsItems = [];
var $index = 0;
var $list = null;

function addListener(element, type, expression, bubbling){
  bubbling = bubbling || false;
  if(window.addEventListener) { // Standard
    element.addEventListener(type, expression, bubbling);
    return true;
  } else if(window.attachEvent) { // IE  
    element[type+expression]=function(e){expression(e, element)};
    element.attachEvent('on' + type, element[type+expression]);
    return true;
  } else {
    return false;
  }
}

function removeListener(element, type, expression, bubbling){
  bubbling = bubbling || false;
  if(window.removeEventListener) { // Standard
    element.removeEventListener(type, expression, bubbling);
    return true;
  }else if(window.detachEvent) {
    element.detachEvent('on'+type, element[type+expression]);
    element[type+expression] = null;
    return true;
  }else{
    return false;
  }
}

function clearNode($obj){
  if ($obj!==null && $obj.parentNode!==null){
    var $new = $obj.cloneNode(false);
    $obj.parentNode.replaceChild($new, $obj);
    return $new;
  }else{
    return $obj;
  }
}


function NewsItem(id, className, content){
  this.id = id;
  this.className = className;
  this.content = content;
  this.toDiv = function(){
                   var $div = document.createElement("div");

                   if(this.id !== null){
                     $div.id = this.id;
                   }

                   if(this.className !== null){
                     $div.className = this.className;
                   }

                   $div.innerHTML = this.content;
                   return $div;
                 };
}

function animate(){
  var $indexRemove = $index === 0 ? $newsItems.length - 1 : $index - 1;
  var $indexAdd = $index === ($newsItems.length - 1) ? 0 : $index + 1;

  if(document.getElementById($newsItems[$indexAdd].id) === null){
    var $new = $newsItems[$indexAdd].toDiv();
    $new.style.display="none";

    $list.appendChild($new);
  }

  Effect.BlindDown($newsItems[$indexAdd].id);
  Effect.BlindUp($newsItems[$indexRemove].id);
  $index = $indexAdd;
}

function parseNews(){
  var $items, $i = null;
  $list = document.getElementById("newsArticles");
  if ($list !== null){
    $list.className += $list.className ==="" ? "js" : " js"; 
    $items  = $list.getElementsByTagName("div");

    for($i=0;$i<$items.length;$i+=1){
      $newsItems[$newsItems.length] = new NewsItem($items[$i].id, $items[$i].className, $items[$i].innerHTML);
    }

    clearNode($list);
    $list = document.getElementById("newsArticles");
    $list.appendChild($newsItems[0].toDiv());
    $list.appendChild($newsItems[1].toDiv());
    $index = 1;
    setInterval("animate()", 5000);
  }
}

function linksToWindows(){

  var $links = null, i = null;

  $links = document.getElementsByTagName('a');
  
  if($links!==null){
  
    for(i=0;i<$links.length;i+=1){
      // .href property add http:// so use attribute collection.
      if ($links[i].attributes.href !== undefined){
        
        // rel="external" to add target.
        if ($links[i].rel==="external"){
          $links[i].setAttribute('target', 'blank');
        
        }
        // IE always add http:// so use outerHTML.
        else if($links[i].outerHTML !== undefined){
          if($links[i].outerHTML.match(/href="http/)){
            $links[i].setAttribute('target', 'blank');
          }
        }else if($links[i].attributes.href.value.match(/^http/)){
          $links[i].setAttribute('target', 'blank');
        }
      }
    }
  }
}

function addLoadEvent(func) {
  addListener(window, "load", func, false);
}

function hookup(){
parseNews();
linksToWindows();

}

addLoadEvent(hookup);

function openWindow(iType) {
    switch (iType) {
        case 1:
            window.open("/uk/microsoft/vistadowngrade.html", "Vista Downgrade Rights.", "status=0, toolbar=0, menubar=0, resizable=0, scrollbars=0, height=200, width=500");
            break;
        case 2:
            window.open("/uk/microsoft/serverdowngrade.html", "Server Downgrade Rights.", "status=0, toolbar=0, menubar=0, resizable=0, scrollbars=0, height=200, width=500");
            break;
    }
}

//CAPTCHA IMAGE

function updateCaptchaImge() {
    //form.submit();
    //alert('test');
    var $req = null;
    if (window.XMLHttpRequest) {
        $req = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) {
        $req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    if ($req !== null) {
        var $params = "locale=D:-sites-websites-vip-microsites-Microsoft-images";
        //var $params = "locale=C:-Workspace-VIP-WebSite-MicrosoftMicrosite-Microsoft-images";
        $req.open("POST", "captchaImage.axd", true);
        $req.onreadystatechange = function() { updateCaptchaImge_stateChange($req); };
        $req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        $req.setRequestHeader("Content-length", $params.length);
        $req.setRequestHeader("Connection", "close");
        $req.send($params);
    }

}

function updateCaptchaImge_stateChange($req) {
    // if xmlhttp shows "loaded"
    var $sText = "";
    
    if ($req.readyState == 4) {
        // if "OK"
        //alert($req.status);
        if ($req.status == 200) {
            var sResult = $req.responseText;
            //alert(sResult);
            if (sResult == "ERROR") {
                alert('loading captcha image failed/');
            } else {
                //alert(sResult);
                var $sArray = sResult.split("::");
                document.getElementById('imgCaptcha').src = "images/" + $sArray[0];
                document.getElementById('ctl00_ContentPlaceHolder1_hidCaptcha').value = $sArray[1];
            }
        }
    }
}

