var crisisXmlData;
var jQ;

function checkCrisis() {
    jQ = jQuery.noConflict();
    property = getCrisisProperty();
    //alert(property);
    if (!crisisXmlData) ajax_getCrisisData(property[0]); //nacteni xml dat
    else { //spracovani xml dat a veskera logika
        var koren = jQ(crisisXmlData).find('data');
        if (!koren) return; //chyba dat => nedela nic
        var krize = jQ(koren).find('crisis');
        if (!krize) return; //neni zadna krize => nedela nic
        if (!jQ(koren).attr('now')) return; //neni aktualni cas => nedela se nic
        var now = new Date(jQ(koren).attr('now'));
        var krizeID = jQ(krize).attr('id');
        //alert('krizeID:'+krizeID);
        //alert('krizeDateRAW:'+jQ(krize).attr('date'));
        var krizeDate = new Date(jQ(krize).attr('date'));
        //alert('krizeDate:'+krizeDate+' valueof:'+krizeDate.valueOf());
        var krizeHref = jQ(krize).attr('href');
        //alert('krizeHref1:'+krizeHref);
        var redirect = false;
        if (!krizeHref) krizeHref = property[1];
        //alert('krizeHreffinal:'+krizeHref);
        if (!krizeHref) return; //neni zadne URL krize => nedela nic
        var cookieDate = null;
        if (getCookie('crisisDate')) cookieDate = new Date(parseInt(getCookie('crisisDate'))); //cookie: crisisDate
        //alert('cookieDateRAW:'+parseInt(getCookie('crisisDate')));
        var cookieID = getCookie('crisisID'); //cookie: crisisID
        //alert('cookieDate:'+cookieDate);
        //alert('cookieID:'+cookieID);
        if (!cookieID || !cookieDate) redirect = true;
        if (cookieDate < krizeDate) redirect = true;
        
        if (redirect) {
            var expires = new Date();
            expires = expires.valueOf() + 24*60*60*1000;
            expires = new Date(expires);
            //alert('expires:'+expires);
            setCookie('crisisDate', krizeDate.valueOf(), expires, '/');
            setCookie('crisisID', krizeID, expires, '/');
            window.location = krizeHref+'?ref='+encodeURIComponentFull(window.location);
        }
    }
}

function ajax_getCrisisData(url) {
  jQ.ajax({
   type: "GET",
   async: true,
   url: url,
   data: "",
   dataType: "xml",  
   success: function(dgData){
   		crisisXmlData = dgData;
   		checkCrisis();
    } ,
   error: function(xmlObject, errorMsg, exception) {    
   }
 });
}

function encodeURIComponentFull(text) { // opravuje nedokonalost fce encodeURIComponent
    var reg;
    text = encodeURIComponent(text);
    reg = new RegExp('\\x2d', 'gm');
    text = text.replace(reg, '%2D'); //-
    reg = new RegExp('\\x5f', 'gm');
    text = text.replace(reg, '%5F'); //_
    reg = new RegExp('\\x2e', 'gm');
    text = text.replace(reg, '%2E'); //.
    reg = new RegExp('\\x21', 'gm');
    text = text.replace(reg, '%21'); //!
    reg = new RegExp('\\x7e', 'gm');
    text = text.replace(reg, '%7E'); //~
    reg = new RegExp('\\x2a', 'gm');
    text = text.replace(reg, '%2A'); //*
    reg = new RegExp('\\x27', 'gm');
    text = text.replace(reg, '%27'); //'
    reg = new RegExp('\\x28', 'gm');
    text = text.replace(reg, '%28'); //(
    reg = new RegExp('\\x29', 'gm');
    text = text.replace(reg, '%29'); //)
    return text;
}
