String.prototype.trim = function() { return this.replace(/^\s+|\s+$/, ''); };
var defsearchstring;

function form_addrepeat(page, element, lang)
{
    var lastid = document.getElementById("repeat_lastid_" + page + "_" + element);
    var form = document.getElementById("repeat_form_" + page + "_" + element).value;
    var id = lastid.value;
    lastid.value = parseInt(id) + 1;
    
    var newem = getResponse("/?template=/System/Forms/RepeatablePiece&form=" + form + "&id=" + element + "&newid=" + id + "&lang=" + lang);
    $("#repeat_holder_" + page + "_" + element).before(newem);    
}

function form_removerepeat(page, element, remid)
{
    $("#repeated_" + page + "_" + element + "_" + remid + "_1").slideUp("normal", function()
    {
        $("#repeated_" + page + "_" + element + "_" + remid + "_1").remove();
        $("#repeated_" + page + "_" + element + "_" + remid + "_2").remove();
    });       
}

function form_removerepeat2(page, element, remid)
{    
  $("#repeated_" + page + "_" + element + "_" + remid + "_1").remove();        
}

function showsendto()
{
    var frm = document.getElementById('sendtofriendfrm');
    if(frm.className=='hidden')
    {
        frm.className='';
        document.getElementById('sendtoshowlink').className = "hidden";
    }
    else
    {
       frm.className='hidden';
        document.getElementById('sendtoshowlink').className = "";
    }
}

function sendToFriendSubmit()
{
    var ret = true;
    
    if(document.getElementById('sendrecipientMail').value != ""
    && document.getElementById('sendsenderMail').value != ""
    && document.getElementById('sendsenderName').value != ""
    && document.getElementById('sendtext').value != "") document.getElementById('sendfill').className = "hidden";
    else
    {    
        ret = false;        
        document.getElementById('sendfill').className = "";
    }
    
    if(util_validateRegex(document.getElementById('sendrecipientMail'), util_emailRegex, false)
    && util_validateRegex(document.getElementById('sendsenderMail'), util_emailRegex, false)) document.getElementById('sendmailerr').className = "hidden";
    else
    {    
        ret = false;                   
        document.getElementById('sendmailerr').className = "";
    }  
    
    var h = document.getElementById('hash').value;
    var url = "actions/CodeCheck.aspx?code=" +  document.getElementById('sendcode').value + "&h=" + h;
    var request = new FactoryXMLHttpRequest();
    request.open("GET", url, false);
    request.send(null);              
    
    var response = request.responseText;        
    var retCode = (response == "OK");
    
    if(!retCode)
    {
        ret = false;
        document.getElementById('sendcodeerr').className = "";
    }
    else
                document.getElementById('sendcodeerr').className = "hidden";
    
    if(ret) document.getElementById('sendtofriendfrm').submit();
    else    
    document.getElementById('sendErrors').className = "";
}

function article_imageopen(imageid, elementid)
{
    document.getElementById('img_' + elementid + '_main').src="/image/itemid-" + imageid + "/w-466/h-340/q-85/" + imageid + ".jpg";    
    document.getElementById('perex_' + elementid + '_a').innerHTML = document.getElementById('articles_hidden_' + elementid + '_' + imageid).innerHTML;
    //document.getElementById('img_' + elementid + '_main_a').href="/image/itemid-" + imageid + "/mw-800/mh-600/q-95/" + imageid + ".jpg";        
            
    //Lightbox = Class.create();
        
    document.getElementById('item_' + elementid + '_' + articleimage).className='gallery-item';
    articleimage = imageid;
    document.getElementById('item_' + elementid + '_' + articleimage).className='gallery-item active';
}



function article_click(elementid)
{
    var id = 'articles_hidden_' + elementid + '_' + articleimage;  
    var fireOnThis = document.getElementById(id);
    
    if( document.createEvent ) 
    {
      var evObj = document.createEvent('MouseEvents');
      evObj.initEvent( 'click', true, false );
      fireOnThis.dispatchEvent(evObj);
    } 
        else if( document.createEventObject ) 
    {   
      fireOnThis.fireEvent('onclick');
    }

    return false;
}

function srch_page(p)
{
    document.getElementById('srch_pagenum').value = p;
    document.getElementById('srch_form').submit();
    return false;
}

function photoVote(id, lang)
{
    var response = getResponse("/actions/PhotoVote.aspx?photoid=" + id + RndUrl());
    
    if(response == "1")
    {
        if(lang == "en")
            alert("Your vote was accepted.");
        else
            alert("Váš hlas byl přijat.");
    }
    else
    {
        if(lang == "en")
            alert("There has been already voted from this computer.");
        else
            alert("Z tohoto počítače bylo již hlasováno.");
    }
}

function FactoryXMLHttpRequest()
{
    if(window.XMLHttpRequest)
    {
        return new XMLHttpRequest();
    }
    else if(window.ActiveXObject)
    {
        var msxmls = new Array('Msxml2.XMLHTTP.5.0', 'Msxml2.XMLHTTP.4.0', 'Msxml2.XMLHTTP.3.0', 'Msxml2.XMLHTTP', 'Microsoft.XMLHTTP');
        for (var i = 0; i < msxmls.length; i++)
        {
            try
            {
                return new ActiveXObject(msxmls[i]);
            }
            catch (e) { }
        }
    }
    throw new Error("Could not instantiate XMLHttpRequest");
}

function RndUrl()
{
    return '&rndrefresh=' + Math.random();
}


function getResponse(url)
{
    var request = new FactoryXMLHttpRequest();
    request.open("GET", url, false);
    request.send(null);           
    var response = request.responseText; 
    return response; 
}


function loadContent(contentDiv, url, force, showProgress)
{

    url += "&ignorehead=yes";

    if (contentDiv == undefined) return;

    if (!force)
        if (contentDiv.innerHTML.trim().length > 0)
            return;


    if (showProgress)
        contentDiv.innerHTML = '<span class="loading">Nahravam&hellip;</span>';

    var request = new FactoryXMLHttpRequest();
    
    request.onreadystatechange = function() { loadContentFinish(request, contentDiv); };        
        
    request.open("GET", url, true);
    request.send(null);        
    
}


function loadContentFinish(req, contentDiv)
{
    if (contentDiv == null) return;
    if (req.readyState == 4)
    {
        if (req.status == 200)
        {
            var response = req.responseText;            
            
            contentDiv.innerHTML = response;
          
            if (contentDiv.firstChild != undefined)
            {
                if (contentDiv.firstChild.id == contentDiv.id)
                {
                    var contentNew = contentDiv.firstChild.childNodes;
                    var len = contentNew.length;

                    contentDiv.removeChild(contentDiv.firstChild);
                    for (var i = 0; i < len; i++)
                    {
                        contentDiv.appendChild(contentNew.item(0));
                    }
                }
            }
            //getReady();
        }
        else
            contentDiv.innerHTML = "Error";
    }
}


function RedirectPage(url)
{
   //  alert(url);     
    document.location = url;
}

/* Comments */
function comment_reply(parentId, date, sender)
{
    var em = document.getElementById("c-parentid");
    if(em != null) em.value = parentId;
        
    em = document.getElementById("reaction");       
    if(em) em.className = "";
    
    util_setText("reactionText", date);
    util_setText("reactionSender", sender);
}

function comment_cancelReply()
{
    var em = document.getElementById("c-parentid");
    if(em != null) em.value = "";
    
    em = document.getElementById("reaction");       
    if(em) em.className = "hidden";
}


function comment_afterAjax(divID, CommentsItemID)
{
    Ajax('content_' + divID, '/?Template=/System/Comments/ItemComments&CommentsItemID=' + CommentsItemID);    
}


function comment_submit(btn)
{   
    var frm = btn.form;
    var ret = true;

/*
    if(frm.w2pEmail)
    {
        if(!util_validateRegex(frm.w2pEmail, util_emailRegex, true))
        {
            ret = false;           
            util_showElement("commentErrMail");
        }
        else util_hideElement("commentErrMail");
    }
  */
  
    if(frm.w2pName.value != "") util_hideElement("commentErrNick");
    else
    {    
        ret = false;           
        util_showElement("commentErrNick");
    }

    if(frm.w2pText.value != "") util_hideElement("commentErrText");
    else
    {        
        ret = false;           
        util_showElement("commentErrText");
    }
    
    var h = document.getElementById('hash').value; 
            
    url = "actions/CodeCheck.aspx?code=" +  frm.w2pCode.value + "&h=" + h;
    var request = new FactoryXMLHttpRequest();
    request.open("GET", url, false);
    request.send(null);              
    
    var response = request.responseText;        
    var retCode = (response == "OK");
    
    if(!retCode)
    {
        ret = false;
        util_showElement("commentErrCode");
    }
    else
        util_hideElement("commentErrCode");
    
    if(ret) util_hideElement("commentErr");
    else util_showElement("commentErr");
    
    if(ret) 
    {
        document.getElementById('w2pSend').className = "hidden"; 
        document.getElementById('comment_sending').className = ""; 
    
        document.getElementById('frmComment').submit();
    }
}

/* ranking */
function rankOver(idBase, i)
{
    for(var x = 1; x <= 5; x++)
    {
        var id = idBase + x;    
        var star = document.getElementById(id);
        if(star)
        {        
            star.src = (x <= i) ? "/img/icons/star-3.gif" : "/img/icons/star-2.gif";
        }
    }
}

function rankClick(rankitemid, i)
{
    var url = "/actions/itemrank.aspx?itemid=" + rankitemid  + "&s=" + i + "&" + RndUrl(); 
    var req = new FactoryXMLHttpRequest();    
    req.open("GET", url, false);
    req.send(null);
            
    elementReload(rankitemid, 1, true);
}

function rankContainerOut(rankitemid, rank)
{   
    var idBase = "star-" + rankitemid + "-";   
    for(var x = 1; x <= 5; x++)
    {
        var id = idBase + x;
        var star = document.getElementById(id);        
        if(star)
        {
            star.src = (rank >= x) ? "/img/icons/star-1.gif" : "/img/icons/star-2.gif";
        }
    }
}


/* util */
var util_emailRegex = /[a-z0-9!#$%&amp;'*+/=?^_`~-]+(?:\.[a-z0-9!#$%&amp;'*+/=?^_`~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/;

function util_setText(id, value)
{
    var em = document.getElementById(id);       
    if(em)
    {
        if(document.all) em.innerText = value; 
        else em.textContent = value;
    }
}

function util_showElement(id)
{
    var em = document.getElementById(id);       
    if(em)
    {
        var arr = em.className.split(" ");
        em.className = "";
        for(var i = 0; i < arr.length; i++)
        {
            if(arr[i] != "hidden")
            {
                em.className =  em.className + " " + arr[i];
            }
        }        
    }
}

function util_hideElement(id)
{
    var em = document.getElementById(id);       
    if(em)
    {
        if(em.className.length <= 0 || em.className[em.className.length] == "")    
            em.className = em.className + "hidden";
        else em.className += " hidden";
    }
}

function util_validateRegex(element, regex, canBeEmpty)
{   
        if(canBeEmpty && element.value == "") return true;
        return element.value.match(regex); 
}

function showPreviewAnketa(param1, param2)
{
    var em = document.getElementById('param_' + param1 + '_' + param2 + '_preview');
    if(em)
    {    
        em.value = (em.value == "no") ? "yes" : "no";
        elementReload(param1, param2);
    }
}

function submitAnketa(param1, param2)
{
    var quest = false;
    var poll = document.getElementById('param_' + param1 + '_' + param2 + '_pollID');
    var questObal = document.getElementById('obal_' + param1 + '_' + param2);
    
    if(questObal && poll)
    {   
        var inputs = questObal.getElementsByTagName("input");
        for (var i = 0; i < inputs.length; i++)
        {            
            if(inputs[i].checked)
            {
                quest = inputs[i].value;                
                break;
            }
        } 
        if(quest)
        {
            var url = "/actions/pollvote.aspx?pollItemID=" + poll.value + "&questionID=" + quest + "&" + RndUrl(); 
            var req = new FactoryXMLHttpRequest();
            
            req.open("GET", url, false);
            req.send(null);
            
            elementReload(param1, param2);            
        }
      //  else
      //      alert("Vyberte jednu z možností.");
    }
}

function elementReload(itemID, elementID)
{
    elementReload(itemID, elementID, false);
}

function elementReload(itemID, elementID, noParam)
{
    var ElementN = document.getElementById('element_' + itemID + '_' + elementID);        
    
    var url = getParameters(ElementN, "input", itemID, elementID, noParam);
    url += getParameters(ElementN, "select", itemID, elementID, noParam);
    
    if (url != "")
    {                
        var ElementN2 = document.getElementById('elementcontent_' + itemID + '_' + elementID);
        if(ElementN2)
        {
            url = "/?" + url + "&ajax=yes&envelope=~" + RndUrl();            
            loadContent(ElementN2, url, true, true);
        }
    }
}

function getParameterValue2(name, itemID, elementID)
{
    var n = document.getElementById(name + '_' + itemID + '_' + elementID);
    if (n == null)
        return "";
    else
        return n.value;

}

function getParameters(ElementN, tagName, itemID, elementID, noparam)
{
    var collection = ElementN.getElementsByTagName(tagName);
    var url = "";
    for (var i in collection)
    {
        var n = collection[i];
        if(!n) continue;
        var id = n.id;
        
        if (id != null)
        {
            var arr = id.split("_");
            if (arr[0] == "param")
            {
                if (arr[1] == itemID && arr[2] == elementID)
                {
                    var paramName = arr[3];
                    if (arr.length == 5)
                        paramName += "_" + arr[4];

                    url += "&" + (noparam ? "" : "param_") + paramName + "=" + escape(n.value);
                }
            }
        }

    }
    return url;
}

var toolTipShowTimer;
var toolTipHideTimer;

function ShowToolTip(txt) 
{
    toolTipShowTimer = window.setInterval('ShowToolTipAfterTimer("' + txt + '");', 300); 
    
    if (toolTipHideTimer != null)
        window.clearInterval(toolTipHideTimer); 

}

function ShowToolTipAfterTimer(txt)
{
    window.clearInterval(toolTipShowTimer); 

    var scrollY =  getScrollY();

    var lx = mouseX + 10; 
    var ly = mouseY + 10 + scrollY;
                                                    
    var n = document.getElementById('tooltip'); 
    
    n.style.left = lx + 'px'; 
    n.style.top = ly + 'px';                                   
                
    
    n.className = ""; 
    n.innerHTML = txt; 

}
function getScrollY() {
    var scrOfY = 0;
    if (typeof( window.pageYOffset ) == 'number') scrOfY = window.pageYOffset;
    else if(document.body && ( document.body.scrollLeft || document.body.scrollTop )) scrOfY = document.body.scrollTop;    
    else if(document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop )) scrOfY = document.documentElement.scrollTop;      
    return scrOfY;
}


function HideToolTip() 
{ 
     window.clearInterval(toolTipShowTimer); 
     toolTipHideTimer = window.setInterval('HideToolTipAfterTimer();', 200); 
}

function HideToolTipAfterTimer()
{
    window.clearInterval(toolTipHideTimer); 
    var n = document.getElementById('tooltip'); 
    n.className = "hidden"; 
}


var mouseX, mouseY;

document.onmousemove = getXYPosition;

function getXYPosition(e)
{
    mouseX=(e||event).clientX;
    mouseY=(e||event).clientY;
}

function Ajax(elementID, url)
{  
    url += "&envelope=~&ignorehead=yes" + RndUrl();            
        
    var contentDiv = document.getElementById(elementID);         
    
    if (contentDiv == undefined) return;    

    //contentDiv.innerHTML = '<span class="loading">Nahravam&hellip;</span>';

    var request = new FactoryXMLHttpRequest();
    
    request.onreadystatechange = function() { AjaxFinish(request, contentDiv); };
    
    //alert(url); 
    
    request.open("GET", url, true);
    request.send(null);   
    

}

function AjaxFinish(req, contentDiv)
{

    if (contentDiv == null) return;
    if (req.readyState == 4)
    {
        if (req.status == 200)
        {
            var response = req.responseText;            
            
                      
            contentDiv.innerHTML = response;
            ShowAjaxElements(contentDiv);
                 	
                 	
            tb_init('a.thickbox, area.thickbox, input.thickbox');//pass where to apply thickbox
	        imgLoader = new Image();// preload image
	        imgLoader.src = tb_pathToImage;
       
          
        }
        
    }

}



function ShowAjaxElements(contentDiv)
{

    var collection = contentDiv.getElementsByTagName('div'); 
    
    for (var i = 0; i < collection.length; i++)
    {
        var n = collection[i]; 
        
        var arr = n.id.split('_'); 
        
        if (arr[0] == "pager" || arr[0] == "letters")
        {            
            n.className = ""; 
        }
    
    }    
    
}



function initialize() 
{


        $('a.lightbox').lightBox(); 
        
        $(function() {
            var showText = getTranslation("more");
            var hideText = getTranslation("hide");
            var speed = 'normal';
        
            var link = '<span class="cell-4"><a href="#" class="show-more">' + showText + '</a></span>';
            $('.hiding-text').children(':not(".hidden,.clear")').append(link);
            $('.show-more').live('click', function() {
                var row = $(this).parents('div')[0];
                if ($(this).text() == showText)
                {
                    $(row).next().slideDown(speed);
                    $(this).text(hideText);
                }
                else
                {
                    $(row).next().slideUp(speed);
                    $(this).text(showText);
                }
                $(this).blur();
                return false;
            });
        });
        
        $(function() {
            $(".roller-more").live('click', function() {
                $(this).siblings(".in").slideDown("normal");
                $(this).addClass("hidden");
                $(this).siblings("a").removeClass("hidden");
                $(this).blur();
                return false;
            });
        });
        
        $(function() {
            $(".roller-hide").live('click', function() {
                $(this).siblings(".in").slideUp("normal");
                $(this).addClass("hidden");
                $(this).siblings("a").removeClass("hidden");
                $(this).blur();
                return false;
            });
        });
        


        $(function() {
        speed = $("ul.quotes").attr("speed");
        if(isNaN(speed))
            speed = 10000;
        else
            speed = 1000 * parseInt(speed);
            
            $('ul.quotes').QAnim({
                random: false,
                interval: speed,
                startItem: 0,
                effectSpeed: 500
            });
            
        });
        
        defsearchstring = getTranslation("search").toLowerCase();                
         $(function() {
            $("#head-srch-input").focusin(function() {            
                if($("#head-srch-input").val().toLowerCase() == defsearchstring)
                {
                    $("#head-srch-input").val("");                    
                }
            });
            $("#head-srch-input").keydown(function(e) {
               if(e.which==13) $("#srch-form").submit();
            });
         });
        
         $(function() {
            $(".form-page-next").click(function() {                
                var valid = true;    
                
                
                $(this).parents(".form-page").first().find(".mandatory").each(function() {                        
                    if(!$(this).val())
                    {
                        $(this).addClass("invalid");
                        valid = false;
                    }
                    else $(this).removeClass("invalid");
                });    
                
                
                   
                if(!valid)
                {
                    $(".frm-error-info").removeClass("hidden");
                    $('html, body').animate({ scrollTop: $(".frm-error-info").offset().top - 50 }, 300);        
                }
                else
                {
                    $(".frm-error-info").addClass("hidden");
                    var nextid = $(this).siblings(".next-page-id").text();                
                    $("#form-page-" + nextid).removeClass("hidden");
                    $(this).parents(".form-page").addClass("hidden");
                }
            
                
                return false;
            });
         });
         
         $(function() {
            $(".form-page-previous").click(function() {                
                var valid = true;    
                                   
                
                $(".frm-error-info").addClass("hidden");
                var previousid = $(this).siblings(".previous-page-id").text();                
                $("#form-page-" + previousid).removeClass("hidden");
                $(this).parents(".form-page").addClass("hidden");
            
            
                
                return false;
            });
         });
        
        
        
        
/*        
        try
        {
        if (document.getElementById("map_canvas") == undefined) return;

        var latlng = new google.maps.LatLng(33.525369,36.292648);
        var myOptions = {
        zoom: 9,
        center: latlng,
        mapTypeId: google.maps.MapTypeId.TERRAIN
        };
        var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);


        } catch (ex) { }

        }
 */       
        
}

function getTranslation(key)
{    
    return getResponse("/?template=/System/Templates/Translation&key=" + key + "&lang=" + $("#page-lang").text() + "&ignorehead=yes");
}

function frm_submit()
{
    var valid = true;    
    $(".mandatory").each(function() {
        if(!$(this).val())
        {
            $(this).addClass("invalid");
            valid = false;
        }
        else $(this).removeClass("invalid");
    });    
    
       
    if(!valid)
    {
        $(".frm-error-info").removeClass("hidden");
        $('html, body').animate({ scrollTop: $(".frm-error-info").offset().top - 50 }, 300);        
    }
    else
    {
        $(".frm-error-info").addClass("hidden");
        $("#custom-form").submit();    
    }
}

function doNothing()
{
    return true; 
}


function switchLanguage(lang)
{

    var t = window.location.href; 
    var lang2 = (lang == 'en' ? 'ar' : 'en'); 
                        
    
    if (t.indexOf('/' + lang2 + '/') == -1)
    {
        return true
    }
    else
    {
        var t2 = t.replace('/' + lang2 + '/', '/' + lang + '/'); 
        window.location = t2; 
    
        return false; 
        
    }
}

