﻿String.prototype.trim = function() { return this.replace(/^\s+|\s+$/, ''); };

function article_imageopen(imageid, q, dc)
{
    document.getElementById('article_mainimg').src="/image/itemid-" + imageid + "/w-640/h-207/q-" + q + "/dc-" + dc + "/" + imageid + ".jpg";    
    document.getElementById('article_mainimg_a').href="/image/itemid-" + imageid + "/mw-800/mh-600/q-" + q + "/" + imageid + ".jpg";        
            
    Lightbox = Class.create();
    
    articleimage = imageid;
    
    var copyright =  document.getElementById('photoCopyright_' + imageid).value;
    document.getElementById('copyrightBoxCaption').innerHTML = copyright;
    document.getElementById('copyrightBox').className = "author";
    
}




function article_click()
{
var id = 'articles_hidden_' + 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('click');
}

return false;
}

function search_enter(id, def)
{    
    var em = document.getElementById(id);
    
    if(em && em.value == def) em.value="";
}

function search_leave(id, def)
{
    var em = document.getElementById(id);
    if(em && em.value == "") em.value=def;
}

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 facebookPage(i) 
{
    _Ajax("facebook-body", "/?template=/System/ExternSites/FacebookFansIn&first=" + i);
}


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;            
                                 
            Cufon.replace('#calendar h3', '', { fontFamily: 'JohnSansLite' });
            Cufon.replace('#calendar h2', '', { fontFamily: 'JohnSansLite' });
            Cufon.replace('#calendar h1', '', { fontFamily: 'JohnSansLite' });
            Cufon.replace('#calendar .john', { fontFamily: 'JohnSans' });
            Cufon.replace('#calendar .johns', { fontFamily: 'JohnSans' });
            Cufon.replace('#calendar .johnLite', { fontFamily: 'JohnSansLite' })
            
            Cufon.now(); 
                     
        }
    }
}


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 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;
}


/* 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/star-blue.gif" : "/img/star-gray.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/star-blue.gif" : "/img/star-gray.gif";
        }
    }
}

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 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 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;
}


/* 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(i in arr)
        {
            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 calendar_switchTab(tab)
{  
      
    if (disableCalendarAjax()) return true; 
      
    document.getElementById('calendar_quickevents').className = tab == 'quickevents' ? '' : 'hidden'; 
    document.getElementById('calendar_longevents').className = tab == 'longevents' ? '' : 'hidden';     
    document.getElementById('calendar').className = tab == 'longevents' ? 'events long' : 'events quick';  
    var lang = document.getElementById('calendar_lang').value; 
    var n = document.getElementById('calendar_' + tab); 
                                
    if (n.innerHTML.trim().length == 0)
    {        
        
        var y = document.getElementById('calendar_year').value; 
        var m = document.getElementById('calendar_month').value; 
        var sect = document.getElementById('calendar_sectionid').value;
                               
        var url = "/?Template=/System/Calendar/" + tab + "&month=" + m + "&year=" + y + "&sectionid=" + sect + "&lang=" + lang;                                           
        _Ajax('calendar_' + tab, url);         
        
    }                        
           
    return false;  
}



function calendar_switchMonth(tab, y, m)
{
    if (disableCalendarAjax()) return true; 

    document.getElementById('calendar_year').value = y;
    document.getElementById('calendar_month').value = m;
    
    var sect = document.getElementById('calendar_sectionid').value;
    var lang = document.getElementById('calendar_lang').value; 

    switch (tab)
    {
        case 'longevents' : document.getElementById('calendar_quickevents').innerHTML = ""; break; 
        case 'quickevents' : document.getElementById('calendar_longevents').innerHTML = ""; break; 
    }
                     
    _Ajax('calendar_quickevents', "/?Template=/System/Calendar/quickevents&month=" + m + "&year=" + y + "&sectionid=" + sect + "&lang=" + lang);        
    _Ajax('calendar_longevents', "/?Template=/System/Calendar/longevents&month=" + m + "&year=" + y + "&sectionid=" + sect + "&lang=" + lang);        
     
    
    return false; 

}

function calendar_selectDay(d, i)
{

    if (disableCalendarAjax()) return true; 
 
    var y = document.getElementById('calendar_year').value; 
    var m = document.getElementById('calendar_month').value; 
    var sect = document.getElementById('calendar_sectionid').value;
    var lang = document.getElementById('calendar_lang').value; 
                            
    var url = "/?Template=/System/Calendar/QuickEventList&month=" + m + "&year=" + y + "&sectionid=" + sect + "&day=" + d + "&quickpage=" + i + "&lang=" + lang;                      
            
    _Ajax('calendar_quicklist', url); 
    
    return false; 
}

function calendar_longPage(i)
{

    if (disableCalendarAjax()) return true; 
     
    var y = document.getElementById('calendar_year').value; 
    var m = document.getElementById('calendar_month').value; 
    var sect = document.getElementById('calendar_sectionid').value;
    var lang = document.getElementById('calendar_lang').value; 
                                                       
    var url = "/?Template=/System/Calendar/LongEvents&month=" + m + "&year=" + y + "&sectionid=" + sect + "&longpage=" + i + "&lang=" + lang;                      
            
    _Ajax('calendar_longevents', url); 
    
    return false; 
}



function loadFlash(url, lang, visited)
{     
    url = "";

    if (document.getElementById('promo') != undefined)
    {
        var promoObj = new SWFObject('/flash/intro' + (lang == 'ru' ? '_ru' : '') + '.swf?' + (visited == 1 ? 'visited=1&' : '') + 'version=7&xmlFile=' + url + '/' + lang + '/xml/introflashdata','promo',"100%", 350,'9','#ffffff');                   
        promoObj.addParam('allowFullScreen', 'true');
        promoObj.addParam('quality', 'high');
        promoObj.write('promo');
    }


    if (document.getElementById('youtubeflash') != undefined)
    {
        var youtubeflashObj = new SWFObject('/flash/vidpl' + (lang == 'ru' ? '_ru' : '') + '.swf?version=2&xmlFile=' + url + '/' + lang + '/xml/youtubedata','youtubeflash',306, 290,'9','#ffffff');
        youtubeflashObj.addParam('allowFullScreen', 'true');
        youtubeflashObj.addParam('quality', 'high');
        youtubeflashObj.addParam('WMODE', 'Transparent');
        youtubeflashObj.write('youtubeflash');
    }


    if (document.getElementById('flickrflash') != undefined)
    {
        var flickrflashObj = new SWFObject('/flash/imgpl' + (lang == 'ru' ? '_ru' : '') + '.swf?version=2&xmlFile=' + url + '/' + lang + '/xml/flickrdata','flickrflash',306, 290,'9','#ffffff');
        flickrflashObj.addParam('allowFullScreen', 'true');
        flickrflashObj.addParam('quality', 'high');
        flickrflashObj.addParam('WMODE', 'Transparent');
        flickrflashObj.write('flickrflash');
    }

}



function disableCalendarAjax()
{        
    Prototype.Browser.IE6 = Prototype.Browser.IE && parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf("MSIE")+5)) == 6;
    Prototype.Browser.IE7 = Prototype.Browser.IE && parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf("MSIE")+5)) == 7;

    return Prototype.Browser.IE6 || Prototype.Browser.IE7;  
}

function getPageSize()
{
	     var xScroll, yScroll;
		
		if (window.innerHeight && window.scrollMaxY) {	
			xScroll = window.innerWidth + window.scrollMaxX;
			yScroll = window.innerHeight + window.scrollMaxY;
		} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
			xScroll = document.body.scrollWidth;
			yScroll = document.body.scrollHeight;
		} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
			xScroll = document.body.offsetWidth;
			yScroll = document.body.offsetHeight;
		}
		
		var windowWidth, windowHeight;
		
		if (self.innerHeight) {	// all except Explorer
			if(document.documentElement.clientWidth){
				windowWidth = document.documentElement.clientWidth; 
			} else {
				windowWidth = self.innerWidth;
			}
			windowHeight = self.innerHeight;
		} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
			windowWidth = document.documentElement.clientWidth;
			windowHeight = document.documentElement.clientHeight;
		} else if (document.body) { // other Explorers
			windowWidth = document.body.clientWidth;
			windowHeight = document.body.clientHeight;
		}	
		
		// for small pages with total height less then height of the viewport
		if(yScroll < windowHeight){
			pageHeight = windowHeight;
		} else { 
			pageHeight = yScroll;
		}
	
		// for small pages with total width less then width of the viewport
		if(xScroll < windowWidth){	
			pageWidth = xScroll;		
		} else {
			pageWidth = windowWidth;
		}

		return [pageWidth,pageHeight];
}

/*
$j(document).ready(function() {

    var arrayPageSize = getPageSize();
    $j('#sendtofriend-overlay').css({ width: arrayPageSize[0] + 'px', height: arrayPageSize[1] + 'px' }).fadeTo(0.2,0.8);
    
    $j('#send-to-friend').bind('click', function(e) {
        
        e.preventDefault();
        
        var arrayPageScroll = document.viewport.getScrollOffsets();
        var stfTop = arrayPageScroll[1] + (document.viewport.getHeight() / 10);
        var stfLeft = arrayPageScroll[0];
        
        $j('#sendtofriend-overlay').fadeIn();
        $j('#sendtofriend').css({ top: stfTop + 'px', left: stfLeft + 'px' }).fadeIn();
        
    });
    
    $j('#sendtofriend-close,#sendtofriend-overlay').bind('click', function(e) {
        $j('#sendtofriend-overlay').fadeOut();
        $j('#sendtofriend').fadeOut();
    });
});

*/