﻿var $ = YAHOO.util.Dom.get;

var encN=1;

function decodeTxt(s){
    var s1=unescape(s.substr(0,s.length-1));
    var t='';
    for(i=0;i<s1.length;i++)t+=String.fromCharCode(s1.charCodeAt(i)-s.substr(s.length-1,1));
    return unescape(t);
}

function encodeTxt(s){
    s=escape(s);
    var ta=new Array();
    for(i=0;i<s.length;i++)ta[i]=s.charCodeAt(i)+encN;
    return ""+escape(eval("String.fromCharCode("+ta+")"))+encN;
}

function cookieToList()
{
    if(getCookie(searchCookieName))
    {
        var cookieContent = getCookie(searchCookieName).split(fieldSep);
        
        savedSearches = new Array();

        for(var i=0;i<cookieContent.length;++i)
        {
            if(cookieContent[i].length > 0)
                savedSearches.push(cookieContent[i]);
        }
    }
}

function ListToCookie()
{
    var cookieContent='';
    for(var i=0;i<savedSearches.length;++i)
    {
        cookieContent += savedSearches[i] + fieldSep;
    }
    setCookie(searchCookieName, cookieContent, searchCookieExpireDay);
}

function deleteSearchElement(key)
{
    if(confirm("Biztosan törli ezt a keresést?"))
    {
        for(var i=0; i<savedSearches.length; ++i)
        {
            eKey = savedSearches[i].substr(0, savedSearches[i].indexOf(recSep));

            if(eKey == decodeTxt(key))
            {
                savedSearches.splice(i, 1);
                ListToCookie();
                updateSavedSearchListBox();
                return;
            }
        }
    }
}

function deleteAllSearch()
{
    if(confirm("Biztosan törli az összes keresést?"))
    {
        savedSearches = new Array();
        ListToCookie();
        updateSavedSearchListBox();
    }
}

function getCookieData(offset) {
  var dataend = document.cookie.indexOf (";", offset);
  if (dataend == -1) {
    dataend = document.cookie.length;
  }
  return document.cookie.substring(offset, dataend);
}

function getCookie(name) {
  
  var arg = name + "=";
  var alen = arg.length;
  var clen = document.cookie.length;
  var i = 0;
  while (i < clen) {
    var j = i + alen;
    if (document.cookie.substring(i, j) == arg) {
      return unescape(getCookieData(j));
    }
    i = document.cookie.indexOf(" ", i) + 1;
    if (i == 0) break; 
  }
  return null;
}

function setCookie(name, value, expires) {
  
    var path = '/'; 

    var today = new Date();
    today.setTime( today.getTime() );

    expires = expires * 1000 * 60 * 60 * 24;
    var expires_date = new Date( today.getTime() + (expires) );
        
    document.cookie = name + "=" + escape(value)  +
        ( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) +
        ( ( path ) ? ";path=" + path : "" );
}

function favoriteDataChecker()
{
    var errorMsg = '';
    
    var searchName = $('searchName').value;
    
    if (searchName.length > 20)
        searchName = searchName.substring(0,20) + "...";
        
    searchName = escape(trim(searchName).replace(/[.|/|\*|%|\\|<|>|']*/g, ""));
    
    if(!searchName)
    {
       $('saveSearchMsg').innerHTML = "Nevet kötelezõ megadni.";
       $('saveSearchMsg').style.display = 'block';
       return false;
    }
    else
       return true;
}

function favoriteSearchSetCookie(withoutForm)
{
    if(favoriteDataChecker())
        saveSynchronizeCookie($('searchName').value, withoutForm);
}

function favoriteSearchSetDB(withoutForm)
{
    if(favoriteDataChecker())
        saveSynchronizeDB($('searchName').value, withoutForm);
}

function saveSynchronizeCookie(key, withoutForm)
{
    for(var i=0; i<savedSearches.length; ++i)
    {
        eKey = savedSearches[i].substr(0, savedSearches[i].indexOf(recSep));
        eValue = savedSearches[i].substr(savedSearches[i].indexOf(recSep) + recSep.length);
        
        if(eValue == window.location.href)
        {
            $('saveSearchMsg').innerHTML = 'Ezt a keresési feltételt már elmentette!\n';
            $('saveSearchMsg').style.display = 'block';
            return;
        }
        
        if(eKey == key)
        {
            $('saveSearchMsg').innerHTML = 'Ezzel a névvel már mentett!\n';
            $('saveSearchMsg').style.display = 'block';
            return;
        }
    }

    if(!withoutForm)
    {
        if($('complexSearch'))
        {
            var form = $('complexSearch');
            q = YAHOO.util.Connect.setForm(form);
            query = window.location.href.replace("/"+currententLanguage+"/", "/"+currententLanguage+"/osszetett-kereses.aspx?");
            if(query.indexOf("?") > -1);
                query = query.substr(0,query.indexOf("?") + 1).concat(q);
            savedSearches.push(key + recSep + query);
        }
    }
    else
        savedSearches.push(key + recSep + window.location.href);
    ListToCookie();
    
    toggleSearchSaveBox(false);
    
    updateSavedSearchListBox();
}

function saveSynchronizeDB(name, withoutForm)
{
    toggleSearchSaveBox(false);
    var myalert = 0;
    if($('favoriteAlertCheckBox'))
        myalert = ($('favoriteAlertCheckBox').checked) ? 1 : 0;

    var parameters = "command=add" + "&name=" + name + "&param_str=";
    if(!withoutForm)
    {
        if($('complexSearch'))
        {
            var form = $('complexSearch');
            q = YAHOO.util.Connect.setForm(form);
            query = window.location.href.replace("/"+currententLanguage+"/", "/"+currententLanguage+"/osszetett-kereses.aspx?");
            if(query.indexOf("?") > -1);
                query = query.substr(0,query.indexOf("?") + 1).concat(q);
            parameters += escape(query);
        }
    }
    else
        parameters += escape(window.location.href) + "&alert=" + myalert;
    YAHOO.util.Connect.asyncRequest("POST", "/ajax/FavoriteSearchHandler.ashx", FavoriteCheckerCallback, parameters);
}

var FavoriteCheckerSuccess = function(o)
{
    if(o.responseText !== undefined && o.responseText == "-1")
    {
        toggleSearchSaveBox(true);
        $('saveSearchMsg').innerHTML = 'Hiba lépett fel a mentés során...\n';
        $('saveSearchMsg').style.display = 'block';
        return;
    }
    else if(o.responseText !== undefined && o.responseText == "1")
    {
        toggleSearchSaveBox(true);
        $('saveSearchMsg').innerHTML = 'Ezzel a névvel már mentett!\n';
        $('saveSearchMsg').style.display = 'block';
        return;
    }
    else if(o.responseText !== undefined && o.responseText == "2")
    {
        toggleSearchSaveBox(true);
        $('saveSearchMsg').innerHTML = 'Ezt a keresési feltételt már elmentette!\n';
        $('saveSearchMsg').style.display = 'block';
        return;
    }
    else
        toggleSearchSaveBox(false);
};

var FavoriteCheckerFailure = function(o)
{
    toggleSearchSaveBox(true);
    $('saveSearchMsg').innerHTML = 'Hiba lépett fel a mentés során...\n';
    $('saveSearchMsg').style.display = 'block';
    return;
};

var FavoriteCheckerCallback =
{
    success: FavoriteCheckerSuccess,
    failure: FavoriteCheckerFailure
};

function yuiLoaderInit()
{
    YAHOO.namespace("example.container");

    if (!YAHOO.example.container.wait)
    {
        YAHOO.example.container.wait = 
		        new YAHOO.widget.Panel("wait",  
			        { width:"240px", 
			          fixedcenter:true, 
			          close:false, 
			          draggable:false, 
			          zindex:4,
			          modal:true,
			          visible:false
			        } 
		        );

        YAHOO.example.container.wait.setHeader("Kérem várjon...");
        YAHOO.example.container.wait.setBody('<img src="/skins/default/img/loading.gif" />');
        YAHOO.example.container.wait.render(document.body);
    }
}

function deleteSearchFromDB(id)
{
    if(confirm("Biztosan törli ezt a keresést?"))
    {
        yuiLoaderInit();    
        
        var content = document.getElementById("mySavedSearchesListBox");

        var callback = {
            success : function(o) {
	            content.innerHTML = o.responseText;
	            content.style.visibility = "visible";
	            YAHOO.example.container.wait.hide();
            },
            failure : function(o) {
	            content.innerHTML = o.responseText;
	            content.style.visibility = "visible";
	            content.innerHTML = "Hiba a kapcsolat létrehozásakor!";
	            YAHOO.example.container.wait.hide();
            }
        }

        YAHOO.example.container.wait.show();
        var conn = YAHOO.util.Connect.asyncRequest('POST', '/ajax/FavoriteSearchHelper.aspx', callback, 'favoriteid=' + id);
    }
}

function changeAlertMessage(id, myalert, alert)
{
    yuiLoaderInit();    
    
    var content = document.getElementById("mySavedSearchesListBox");

    var callback = {
        success : function(o) {
	        content.innerHTML = o.responseText;
	        content.style.visibility = "visible";
	        YAHOO.example.container.wait.hide();
        },
        failure : function(o) {
	        content.innerHTML = o.responseText;
	        content.style.visibility = "visible";
	        content.innerHTML = "Hiba a kapcsolat létrehozásakor!";
	        YAHOO.example.container.wait.hide();
        }
    }

    YAHOO.example.container.wait.show();
    var conn = YAHOO.util.Connect.asyncRequest('POST', '/ajax/FavoriteSearchHelper.aspx?alert=' + alert, callback, 'favoriteid=' + id + '&alertChanging=' + myalert);
}

function toggleSearchSaveBox(toggleType)
{
    var savedSearchBox = $('savedSearchBox');
    if (savedSearchBox)
    {
        if(toggleType == true)
            savedSearchBox.style.display = 'block';
        else if(toggleType == false)
            savedSearchBox.style.display = 'none';
        else
        {
            if($('savedSearchBox').style.display == 'none')
            {
                $('saveSearchMsg').innerHTML = "";
                $('searchName').value = "";
                $('savedSearchBox').style.display = 'block';
                $('savedSearchBox').focus();
            }
            else
            {
                $('savedSearchBox').style.display = 'none';
            }
        }
    }
}

function updateSavedSearchListBox()
{
    table = $('savedSearchListBoxContent');
    
    while(table.firstChild) { table.removeChild(table.firstChild); }
    
    var savedSearchList='';
    for(var i=0;i<savedSearches.length;++i)
    {
        eKey = savedSearches[i].substr(0, savedSearches[i].indexOf(recSep));
        eValue = savedSearches[i].substr(savedSearches[i].indexOf(recSep) + recSep.length);
    
        row = document.createElement("ul");
        row.setAttribute("id",encodeTxt(eKey));
        row.style.textAlign = "right";
        
        columnDelete = document.createElement("SPAN");
        columnDelete.innerHTML = " <a href=javascript:deleteSearchElement('"+ encodeTxt(eKey) +"')><img src='/skins/default/img/del.gif' style='padding: 0 5px' border='0' /></a>";
        
        columnItem = document.createElement("li");
        columnItem.innerHTML = "<a href='"+ eValue +"'>"+ eKey +"</a>";
                                    
        row.appendChild(columnItem);
        columnItem.appendChild(columnDelete);
        table.appendChild(row);
    }
        
    if ($('globalSavedSearchBox'))
    {
        if(savedSearches.length > 0)
        {
            $('globalSavedSearchBox').style.display = 'block';
        } 
        else 
        {
            $('globalSavedSearchBox').style.display = 'none';
        }
    }
}

function trim(str)
{
   return str.replace(/^\s*|\s*$/g, "");
}

var searchCookieValue = getCookie(searchCookieName);
var savedSearches = new Array();

initSearchSave = function()
{
    cookieToList();
    updateSavedSearchListBox();
}

YAHOO.util.Event.onDOMReady(initSearchSave);