﻿/* helpers */
String.prototype.startsWith = function(s) { return this.indexOf(s) == 0; }
String.prototype.endsWith   = function(s) { var reg = new RegExp(s + "$"); return reg.test(this); }
String.prototype.trim       = function()  {return this.replace(/^\s\s*/, '').replace(/\s\s*$/, '');}

function chkMail(sMail) {
    var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
    return sMail.match(re);
}

function el(id) {
   return document.getElementById(id);
}

function getQueryString(variable) {
   var query = window.location.search.substring(1);
   var vars = query.split("&");
   for (var i = 0; i < vars.length; i++) {
      var pair = vars[i].split("=");
      if (pair[0] == variable)
         return pair[1];
   }
   return "";
}

function show_hide(id, opt) {
   var obj=el(id);
   if (obj != null)
      if (opt == 1)
         obj.style.display = "";
      else if (opt == 0)
         obj.style.display = "none";
      else
         obj.style.display = (obj.style.display == "") ? "none" : "";
}

var Url = {
   encode: function(string) { return escape(this._utf8_encode(string)); },
   decode: function(string) { return this._utf8_decode(unescape(string)); },

   _utf8_encode: function(string) {
      string = string.replace(/\r\n/g, "\n");
      var utftext = "";

      for (var n = 0; n < string.length; n++) {
         var c = string.charCodeAt(n);
         if (c < 128) {
            utftext += String.fromCharCode(c);
         } else if ((c > 127) && (c < 2048)) {
            utftext += String.fromCharCode((c >> 6) | 192);
            utftext += String.fromCharCode((c & 63) | 128);
         } else {
            utftext += String.fromCharCode((c >> 12) | 224);
            utftext += String.fromCharCode(((c >> 6) & 63) | 128);
            utftext += String.fromCharCode((c & 63) | 128);
         }
      }

      return utftext;
   },

   _utf8_decode: function(utftext) {
      var string = "";
      var i = 0;
      var c = c1 = c2 = 0;

      while (i < utftext.length) {
         c = utftext.charCodeAt(i);
         if (c < 128) {
            string += String.fromCharCode(c);
            i++;
         } else if ((c > 191) && (c < 224)) {
            c2 = utftext.charCodeAt(i + 1);
            string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
            i += 2;
         } else {
            c2 = utftext.charCodeAt(i + 1);
            c3 = utftext.charCodeAt(i + 2);
            string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
            i += 3;
         }
      }
      return string;
   }
}

/* favorites */
function OnSave(){
   window.external.addFavorite('http://technet.microsoft.com/hu-hu/events/teched/cc561184(en-us).aspx', parent.document.title );
}

var sLastAction = "";
var sCaptcha = "";
var bGetComments = false;

/* ajax */
function CreateXmlReq() {
   try {
      XmlReq = new ActiveXObject("Msxml2.XMLHTTP");
   } catch (e) {
      try {
         XmlReq = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (oc) {
         XmlReq = null;
      }
   }
   if (!XmlReq && typeof XMLHttpRequest != "undefined") {
      XmlReq = new XMLHttpRequest();
   }
}

function onPageLoad() {
   if (XmlReq.readyState == 4) {
      if (XmlReq.status == 200) {
         var xmlDoc  = XmlReq.responseXML;
         var xndStat = xmlDoc.getElementsByTagName('status');
         var xndData = xmlDoc.getElementsByTagName('data');

         var sData   = "";
         var sDatax  = "";
         var sStatus = "";

         if ((xndStat != null) && (xndStat[0] != null) && (xndStat[0].firstChild != null))
            sStatus = xndStat[0].firstChild.data;
         
         if ((xndData != null) && (xndData[0] != null) && (xndData[0].firstChild != null))
            sData = xndData[0].firstChild.data;
            
         if ((xndData != null) && (xndData[0] != null) && (xndData[0].firstChild != null))
            sDatax = xndData[0].firstChild.xml;
            
         if (sLastAction.startsWith("gpic")) {
            sCaptcha = sData;
            el("imgCode").src = "?pic=" + sData;

            if(bGetComments) {
               // hozzászólások frissítése
               bGetComments = false;
               getContent("comments=1&id=" + getQueryString("id"));
            }

         } else if (sLastAction.startsWith("id")) {
            // új hozzászólás
            el("pnlMsg").style.display = "";
            if (sStatus == "OK.") {
               el("txtNev").value    = "";
               el("txtEPosta").value = "";
               el("txtUrl").value    = "";
               el("txtMegj").value   = "";
               if(el("txtKod") != null) el("txtKod").value = "";
               
               el("pnlMsg").style.color = "#00c";
               el("pnlMsg").innerHTML = "A hozzászólás sikeresen elküldve!";

               // hozzászólások frissítése kell majd (a kód kérésen belül)
               if (el("rowCaptcha1") != null) {
                  bGetComments = true;
                  getContent('gpic=1'); // új kód kérése
               } else {
                  getContent("comments=1&id=" + getQueryString("id"));
               }
               
            } else {
               el("pnlMsg").style.color = "#f00";
               el("pnlMsg").innerHTML   = sData;
            }
            setTimeout("el('pnlMsg').style.display = 'none';", 5000);

         } else if (sLastAction.startsWith("comments")) {
            // hozzászólás után
            //alert(sDatax.substring(9));

            // < > visszaállítás, cdata kiszedés
            el("cellComments").innerHTML = sDatax.replace(/<!\[CDATA\[/g, "").replace(/\]\]>/g, "");
         }
            /*
            var t = xndData[0].firstChild.data;
            h = t.replace(/<\/?script>/gi, "\07").replace(/\07[^\07]+\07/g, "");
            s = ("\07" + t.replace(/<\/script[^>]*>/gi, "\07").replace(/<\bscript>/gi, "\06") + "\06").replace(/\07[^\06]+\06/g, "");

            // < > visszaállítás, cdata kiszedés
            document.getElementById("dContent").innerHTML = h.replace(/\{/g, "<").replace(/\}/g, ">").replace(/<!\[CDATA\[/g, "").replace(/\]\]>/g, "");
            eval(s);
            */
      }
   }
}

//
function getContent(sAction) {
   sLastAction = sAction;

   //el("blackline").innerHTML = "Betöltés... " + sLastAction;

   var requestUrl = "?" + sAction;
   CreateXmlReq();
   if (XmlReq) {
      XmlReq.onreadystatechange = onPageLoad;
      XmlReq.open("GET", requestUrl, true);
      XmlReq.send(null);
      //XmlReq.send();
   }
}

function chkFields() {
   var bRet = false;
   if (el("txtMegj").value.trim() == "") {
      alert("A hozzászólás kitöltése kötelező!");
      el("txtMegj").focus();
   } else if ((el("txtKod") != null) && (el("txtKod").value.trim() == "")) {
      alert("Az ellenőrző kód kitöltése kötelező!");
      el("txtKod").focus();
   } else
      bRet = true;
   return bRet;
}

//
function sendComment() {
   if (chkFields()) {
      var sCode = el("txtKod") != null ? el("txtKod").value.trim() : "";
      var sUrl = "id="       + getQueryString("id") +
                 "&nev="     + Url.encode(el("txtNev").value.trim()) +
                 "&eposta="  + el("txtEPosta").value.trim() +
                 "&url="     + el("txtUrl").value.trim() +
                 "&megj="    + Url.encode(el("txtMegj").value.trim()) + 
                 "&code="    + Url.encode(sCode) +
                 "&captcha=" + sCaptcha;
      getContent(sUrl);
   }
}