﻿var flag='';
var flagLong='';
var updPost='';
var updGet='';
function DeleteRow(a)
{     
    try
    { 
        var tr = a.parentNode.parentNode;
        var id = tr.id.replace("r","");
        var data = "<data><delete id=\""+ id +"\"/></data>";
        startRequest(data);
    }
    catch(err)
    {
        alert("Произошла ошибка, попробуйте позже");
    }
    finally
    {
    }
}

function SecurityAdd()
{
    try
    {
        var strings = GetStrings();
        if(strings!=null)
        {
            var data = "<data><add>";
            for (var i=0, j=strings.length;i<j;i++)
            {
                strings[i] = strings[i].replace(/,/g,"");
                data += "<wmid>" + strings[i] + "</wmid>";
            }
            data+="</add></data>";
            startRequest(data);
        }
    }
    catch(err)
    {
        alert(err.message);
    }
    finally
    {
    }
}

function AddRow(wmid, id)
{
    document.getElementById('tabSecurityWmids').style.display="block";
    var tbody = document.getElementById('tabSecurityWmids').getElementsByTagName('TBODY')[0];
    var row = document.createElement("TR");
    tbody.appendChild(row);

    var td1 = document.createElement("TD");
    var td2 = document.createElement("TD");

    row.appendChild(td1);
    row.appendChild(td2);
    row.id = "r"+id;

    td1.innerHTML = wmid;
    td2.innerHTML = "<img src=\"./Images/x.gif\" onclick=\"DeleteRow(this)\" />";
}

function GetStrings()
{
    try
    {
        var str = document.getElementById("intxtSecurityWmids").value;
        document.getElementById("intxtSecurityWmids").value = "";
        if(str=="")
        {
            alert("Введите WMID");
            return null
        }
        str = str.replace(/[^\d]/g,",,")
        var reg = /([^\d]|^)(\d{12})([^\d]|$)/g;
        var arr = new Array();
        arr = str.match(reg);
        if(arr.length>0)
            return arr;
        else
        {
            alert("Введите WMID правильно");
            return null;
        }
    }
    catch(err)
    {
        alert("Введите WMID правильно");
        return null;
    }
    finally
    {
    }
}

function CreateXMLObject()
{
	try
	{
		xmlHttp = new ActiveXObject('Msxml2.XMLHTTP');
    }	
	catch (e)
	{
		try
		{
			xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
		}
		catch (ee)
		{
			if (typeof XMLHttpRequest != 'undefined')
				xmlHttp = new XMLHttpRequest();
			else
			{
			    xmlHttp=null;
			}
		}
	}
}

function startRequest(data)  
{
    CreateXMLObject(); 
    xmlHttp.onreadystatechange = handleStateChange; 
    xmlHttp.open("POST", url, true); 
    xmlHttp.send(data); 
}

function GetLink(type)
{
    if(type=="GET")
    {
        var url = document.getElementById("intxtInput").value;
        if(url == "")
        {
            alert("Введите url");
            return;
        }
        url = escapeHTML(url);
        data = "<data><get url=\""+url+"\"/></data>";
        startRequest(data);
    }
    if(type=="POST")
    {
        var url = document.getElementById("intxtInput").value;
        if(url == "")
        {
            alert("Введите url");
            return;
        }
        var txt = document.getElementById("taText").value;
        if(txt == "")
        {
            alert("Введите текст запроса");
            return;
        }
        var encoding = document.getElementById("intxtEncoding").value;
        if(encoding == "")
        {
            alert("Введите кодировку запроса");
            return;
        }
        url = escapeHTML(url);
        txt = escapeHTML(txt);
        encoding = escapeHTML(encoding);
        data = "<data><post url=\""+url+"\" encoding=\""+encoding+"\">" + txt + "</post></data>";
        startRequest(data);
    }
}

function escapeHTML (str)
{
   var div = document.createElement('div');
   var text = document.createTextNode(str);
   div.appendChild(text);
   return div.innerHTML;
};

function SetInpit()
{
    document.getElementById("divInput").style.display="block";
    document.getElementById("divOutput").style.display="none";
}

function handleStateChange()
{ 
    if(xmlHttp.readyState == 4 || flag!=NaN && flag!='')
    { 
        if(xmlHttp.status == 200 || flag!=NaN && flag!='')  
        {
            var a;
            var split = new Array();
            a = xmlHttp.responseText;
            if(a==null)
            {
                alert("Произошла ошибка, попробуйте позже");
                return null;
            }
            if(document.getElementById("intxtInput")!=null && SetAdd(a, document.getElementById("intxtInput").value))
                return;
            split = a.split(";")
            if(split!=null && split.length==2)
            {
                if(split[0]=="error")
                {
                    alert(split[1]);
                    return null;
                }
                if(split[0]=="post")
                {
                    SetPost(split[1]);
                }
                if(split[0]=="wmids")
                {
                    if(split[1]=="empty")
                    {
                        return;
                    }
                    var tbody = document.getElementById('tabSecurityWmids').getElementsByTagName('TBODY')[0];
                    var ids = new Array();
                    ids = split[1].split("|")
                    for (var i=0, j=ids.length;i<j;i++)
                    {
                        var strings = new Array();
                        strings = ids[i].split("/")
                        if(document.getElementById('r'+strings[0])==null)
                            AddRow(strings[1], strings[0]);
                    }

                }
                if(split[0]=="delete")
                {
                    var tbody = document.getElementById('tabSecurityWmids').getElementsByTagName('TBODY')[0];
                    tbody.removeChild(document.getElementById('r'+split[1]));
                    if(tbody.children.length<2)
                    {
                        document.getElementById('tabSecurityWmids').style.display="none";
                    }
                }
            }
            else
            {
                alert("Произошла ошибка, попробуйте позже");
                return null;
            } 
        }
        else
        {
            alert("Произошла ошибка, попробуйте позже");
        }
    }
}

function SetAdd(a, longUrl)
{
    var split = new Array();
    split = a.split(";")
    if(split!=null && split.length==2 && split[0]=="get")
    {
        var shortUrl = '';
        document.getElementById('divOutput').style.display="block";
        var urls = new Array();
        urls = split[1].split("|");
        if(urls!=null && urls.length == 2)
        {
            shortUrl = urls[0];
            document.getElementById('lblShortLink').innerHTML = "<div style=\"font-size:15px\"><b>" + urls[0] + "</b></div>" + " или " + "<div style=\"font-size:15px\"><b>" + urls[1] + "</b></div>";
        }
        else
        {
            shortUrl = split[1];
            document.getElementById('lblShortLink').innerHTML = "<div style=\"font-size:15px\"><b>" + split[1] + "</b></div>";
        }
        document.getElementById('lblLongLink').innerHTML = longUrl;
        document.getElementById('divImg').innerHTML = "<img src=\"./qc.aspx?url=" + encodeURIComponent(shortUrl) + "\" />"
        document.getElementById('lblCode').innerHTML = escapeHTML("<a href=\"" + shortUrl + "\">" + shortUrl + "</a> ");
        if(document.getElementById('intxtSecurityWmids')!=null)
            document.getElementById('intxtSecurityWmids').value = "";
        document.getElementById("intxtInput").value = "";
        HideTable();
        return true;
    }
    return false;
}

function SetPost(postUrl)
{
    document.getElementById('divInput').style.display="none";
    document.getElementById('divOutput').style.display="block";
    if(document.getElementById('intxtSecurityWmids')!=null)
        document.getElementById('intxtSecurityWmids').value = "";
    document.getElementById('lblShortLink').innerHTML = postUrl;
    document.getElementById('divImg').innerHTML = "<img src=\"./qc.aspx?url=" + encodeURIComponent(postUrl) + "\" />"
    document.getElementById('lblCode').innerHTML = escapeHTML("<a href=\"" + postUrl + "\">" + postUrl + "</a> ");
    document.getElementById("intxtEncoding").value = "";
    document.getElementById("taText").value = "";
    document.getElementById("intxtInput").value = "";
    HideTable();
}

function HideTable()
{
    if(document.getElementById('tabSecurityWmids')!=null)
    {
        var tbody = document.getElementById('tabSecurityWmids').getElementsByTagName('TBODY')[0];
        for(var i=0;i<tbody.childNodes.length;i++)
        {
            if(tbody.childNodes[i].id!=null && tbody.childNodes[i].id.search(/r-?\d+/g)==0)
            {
                var tr = tbody.childNodes[i];
                tbody.removeChild(tr);
                i--;
            }
        }
        document.getElementById('tabSecurityWmids').style.display="none";
    }
}

function CheckFlag()
{
    if(flag!=NaN && flag!='' && flagLong!=NaN && flagLong!='')
    {
        SetAdd(flag, flagLong);
    }
    if(updPost!=NaN && updPost!='')
    {
        SetPost(updPost);
        var data = "<data><add><wmid>ABCDEFGHIJKL</wmid></add></data>";
        startRequest(data);
    }
    if(updGet!=NaN && updGet!='')
    {
        SetAdd(updGet, flagLong);
        var data = "<data><add><wmid>ABCDEFGHIJKL</wmid></add></data>";
        startRequest(data);
    }
}

function EnterClick(event)
{
    var code = (event.charCode) ? event.charCode : event.keyCode;
    if (code == 13)
    {
        GetLink('GET');
    }
}

function disableEnterKey(e)
{
     var key;     
     if(window.event)
          key = window.event.keyCode; //IE
     else
          key = e.which; //firefox     

     return (key != 13);
}