﻿var basedir = "";
var Category_ID = 0;
var currentpage = 1;
var perpage = 10;

var placeholder = "";

if(getCookie("cat_id"));
    Category_ID = getCookie("cat_id");
if(getCookie("ppage"))
    perpage = getCookie("ppage");

$(document).ready(function() {

    $("#maindiv").height($(document).height() - 2);

    $("#contentdiv").height($("#maindiv").height() - 130);

    $(".menuitem").each(function() {
        $(this).bind("mouseenter mouseleave", function() {
            $(this).toggleClass("ui-state-focus");
        });
    });

    $("#searchTd").bind("mouseenter mouseleave", function() {
        $("#searchTd").toggleClass("ui-state-focus");
    });

    $("#preferencesTd").bind("mouseenter mouseleave", function() {
        $("#preferencesTd").toggleClass("ui-state-focus");
    });

    $("#preferences").dialog({
        bgiframe: true,
        autoOpen: false,
        height: 200,
        width: 400,
        modal: true,
        buttons: {
            'Save': function() {
                Category_ID = $('#Category_ID').val();
                perpage = $('#perpage').val();
                setCookie("cat_id", Category_ID, 30);
                setCookie("ppage", perpage, 30);
                $(this).dialog('close');
            },
            Cancel: function() {
                $(this).dialog('close');
            }
        },
        close: function() {
            ;
        }
    });

    $("#preferencesTd").bind("click", function() {
        $("#preferences").dialog('open');
    });

    $("#keyboardTd").bind("mouseenter mouseleave", function() {
        $("#keyboardTd").toggleClass("ui-state-focus");
    });

    $("#keyboardTd").bind("click", function() {
        getContent(9);
    });

    $("#searchTd").bind("click", function() {
        doSearch();
    });

});

function doSearch(container) {
    Category_ID = 0;
	placeholder = container;
    currentpage = 1;
    getResults(placeholder);
}

function showImage(imgsrc)
{
	var imgdialog = document.createElement("div");
	imgdialog.title = "Image";
	imgdialog.id = "previewWindow";
	
	$(imgdialog).html("<img id=\"imgPreview\" src=\""+imgsrc+"\" border=0>");
	
	$(imgdialog).dialog({
		modal: true,
		position: 'top',
		close: function()
		{
			$(imgdialog).dialog('destroy');
			$("#previewWindow").remove();
		}
	});
	
	$("#imgPreview").bind('load', function(){
		$(imgdialog).dialog("option", "width", ($(this).width() + 20));
		$(imgdialog).dialog("option", "height", ($(this).height() + 40));
		$(imgdialog).dialog("option", "position", 'top center');
	});
}

function doSearchForIndex(container) {
    placeholder = container;
    currentpage = 1;
    getResults(placeholder);
}

function resetSettings()
{
    var Category_ID = 0;
    var currentpage = 1;
    var perpage = 10;   
}

function getContent(lnk)
{
	var d = new Date();
	
	try{
		if($("#Category_ID").data("Language_SelectedIndex").value != $("#Category_ID").attr("selectedIndex"))
		{
			$("#Category_ID").attr("selectedIndex", $("#Category_ID").data("Language_SelectedIndex").value);
			Category_ID = $("#Category_ID").val();
		}
	}
	catch(exc){;}
	
	var retUrl = "content.asp?static=" + lnk + "&tms=" + d.getMilliseconds();
	
	pageTracker._trackPageview("default.aspx?static=" + lnk);
	
	$("#dataLoader").show();
    $("#content").fadeOut(400,function(){$("#content").load(retUrl, null, function(){
		$("#dataLoader").hide();
        $("#content").fadeIn(400,function(){$("#contentdiv").height($("#maindiv").height() - 130);});
		$(".thumbpreview").bind('click', function(){
			showImage(this.src.replace('_s.', '.'));
		});
    }
    )});
}

function getContentModal(lnk)
{
	var d = new Date();
	
	var retUrl = "content.asp?static=" + lnk + "&tms=" + d.getMilliseconds();
	
	pageTracker._trackPageview("default.aspx?static=" + lnk);
	
	$("#modal").css("font-size", "0.7em");
	
	try
	{
		$("#modal").dialog( 'destroy' );
	}
	catch(e){;}
	
	document.body.style.cursor = "progress";
	
	$("#modal").html("Loading...&nbsp;<img src=\"images/loader.gif\" border=\"0\">");
	
	$("#modal").dialog({
			bgiframe: true,
			maxHeight: 550,
			width: 760,
			modal: true
	}); 
	
	$("#modal").load(retUrl, null, function(){     
		document.body.style.cursor = "default";
    });
}

function getResults(container, fromPaging)
{
    if(document.getElementById("searchData").value.length > 0)
    {
		if(document.getElementById("perpage"))
			perpage = document.getElementById("perpage").value;
		
		
		// Get the categories that have results and how many they are
		
        var sdata = "";
        if (fromPaging == true) {
            sdata = "Search2.aspx?SearchData=" + (document.getElementById("searchData").value) + "&Category_ID=" + Category_ID + "&page=" + currentpage + "&perpage=" + perpage;
        }
        else
            sdata = "Search2.aspx?SearchData=" + (document.getElementById("searchData").value) + "&SType=Tabs" + "&Category_ID=" + Category_ID;

		pageTracker._trackPageview(sdata);	
			
        if (fromPaging == true) {
            if (placeholder == null) {
                $("#content").fadeOut(100);
                $("#dataLoader").show();
            }
            else {
                $("#" + placeholder).html("Loading, please wait... <img src=\"images/loader.gif\">");
                //$("#" + placeholder).fadeOut(100);
            }
          
            $.getJSON(encodeURI(sdata), function(data) { renderGrid(data) });
        }
        else {

            $("#content").fadeOut(100);
            $("#dataLoader").show();


            $.getJSON(encodeURI(sdata), function(data) {
                if (data.length > 1) {
                    var tabCode = "<div id=\"LanguageTabs\">";
                    tabCode += "<ul>";

                    $(data).each(function(i, item) {
                        tabCode += "<li><a href=\"Search2.aspx?Category_ID=" + item.Category_ID + "\">" + item.Category_Title + " (" + item.Rows + " results)</a></li>";
                    });

                    tabCode += "</ul>";

                    tabCode += "</div>";

                    $("#content").html(tabCode);
                    $("#LanguageTabs").tabs();
                    $("#dataLoader").hide();
                    $("#content").fadeIn(400);
                }
                else if (data.length == 1) {
                    var sdata = "Search2.aspx?SearchData=" + document.getElementById("searchData").value + "&Category_ID=" + data[0].Category_ID + "&page=" + currentpage + "&perpage=" + perpage;

                    if (placeholder == null) {
                        $("#content").fadeOut(100);
                        $("#dataLoader").show();
                    }
                    else {
                        $("#" + placeholder).fadeOut(100);
                        $("#letterIndex").hide();
                        $("#dataLoader").show();
                    }

                    $.getJSON(encodeURI(sdata), function(data) { renderGrid(data) });
                }
                else {
                    $("#content").html("<h3>No results for: " + document.getElementById("searchData").value + "</h3>");
                    $("#dataLoader").hide();
                    $("#content").fadeIn(400);
                }
            });
        }
    }
}

function renderGrid(data)
{
			var resultData = "";

            if(data.totalResults > 0)
            {
				perpage = data.recordsPerPage;
                resultData += "<div class=\"ui-widget ui-state-default ui-corner-tl ui-corner-tr\" style=\"PADDING-RIGHT: 6px; PADDING-LEFT: 6px; PADDING-BOTTOM: 6px; PADDING-TOP: 6px\">Results for: " + document.getElementById("searchData").value + "";
                resultData += ", displaying: " + data.startIndex + " - " + data.endIndex + " out of " + data.totalResults + "</div>";
			    resultData += "<div class=\"ui-widget ui-corner-bl ui-corner-br\" style=\"BORDER-RIGHT: #1b1613 1px solid; PADDING-RIGHT: 10px; BORDER-TOP: #1b1613 1px solid; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; BORDER-LEFT: #1b1613 1px solid; PADDING-TOP: 10px; BORDER-BOTTOM: #1b1613 1px solid; BACKGROUND-COLOR: #131e28\">"
				perpagewidth = 260;
				if(document.all)
					perpagewidth = 260 + 12;
				resultData += "<table border=\"0\" style=\"width: 100%\"><tr><td style=\"width: "+perpagewidth+"px\"><b>Pages:</b> " + getPaging(data.page, data.totalPages, data.pages) + "</td>";
				resultData += "</tr>";
				resultData += "</table><br />";
                resultData += "<table id=\"resulttbl\" border=0 cellpadding=1 cellspacing=0 style=\"width: 900px%\">";
                resultData += "<colgroup><col width=\"110\"><col width=\"150\"><col width=\"150\"><col width=\"80\"><col width=\"300\"></colgroup>"
                resultData += "<tr style=\"font-weight: bold\" class=\"ui-state-default ui-corner-tl ui-corner-tr\">";
                resultData += "<td class=\"ui-corner-tl\">Language</td>";
                resultData += "<td>Word</td>";
                resultData += "<td>Meaning</td>";
                /*resultData += "<td>Transliteration</th>";*/
                resultData += "<td>PIE root</td>";
                resultData += "<td>Symbol Sequence</td>";
                resultData += "</tr>";
                resultData += "<tr><td colspan=\"5\" style=\"border-top: 1px #38414A solid\">&nbsp;</td></tr>";
                
                $.each(data.resultSet.rows, function(i, item){
                    resultData += "<tr>";
                    resultData += "<td valign=\"top\">" + item[8] + "</td>"; // Language
                    resultData += "<td valign=\"top\"><a href=\"default.aspx?static=12&wid=" + item[0] + "\" onclick=\"getContentModal('12&wid=" + item[0] + "');return false;\" title=\"more info\">" + item[1] + "</a></td>"; // word
                    resultData += "<td valign=\"top\" style=\"padding-right: 5px;\">" + item[3] + "</td>"; // meaning
                    /*resultData += "<td valign=\"top\">" + item[2] + "</td>"; // transliteration*/
                    resultData += "<td valign=\"top\">" + item[7] + "</td>"; // PIE root
                    resultData += "<td valign=\"top\">"+RenderSymbols(item[9], item[1])+"</td>"; // Symbol sequence
                    resultData += "</tr>";
                });
                resultData += "</table>&nbsp;<br/>"
                resultData += "<table border=\"0\" style=\"width: 100%\"><tr><td style=\"width: "+perpagewidth+"px\"><b>Pages:</b> " + getPaging(data.page, data.totalPages, data.pages) + "</td>";
				resultData += "</tr>";
				resultData += "</table></div><br />";
            }
            else{
                resultData += "<h3>No results for: " + document.getElementById("searchData").value + "</h3>";
            }
			if (placeholder == null)
			{
				$("#dataLoader").hide();
				$("#content").html(resultData);
				$("#content").fadeIn(400);
			}
			else {
				$("#dataLoader").hide();
				$("#letterIndex").show();
				$("#content").show();
				$("#" + placeholder).html(resultData);
				$("#" + placeholder).fadeIn(400);
            }
}

function getPaging(page, totalPages, pages, placeholder)
{
		currentpage = page;
		
		var ret = "";
		var i;
		
		for(i = pages[1]; i <= (totalPages) && i < pages[0]; i++)
		{
			if(i != page)
				ret = ret + "&nbsp;<a href=\"#\" onclick=\"currentpage="+i+"; getResults("+placeholder+", true);\">" + i + "</a>";
			else
				ret = ret + "&nbsp;<b>" + page + "</b>";
		}
		
		if(currentpage < totalPages)
		    ret += "&nbsp;<a href=\"#\" onclick=\"currentpage=" + (currentpage + 1) + "; getResults(" + placeholder + ", true);\">›</a>&nbsp;";
		
		if(i < totalPages)
		    ret += "&nbsp;<a href=\"#\" onclick=\"currentpage=" + (i) + "; getResults(" + placeholder + ", true);\">»</a>";
		
		if(currentpage > 1)
		    ret = "&nbsp;<a href=\"#\" onclick=\"currentpage=" + (currentpage - 1) + "; getResults(" + placeholder + ", true);\">‹</a>&nbsp;" + ret;
		
		if(pages[1] > 1)
		    ret = "&nbsp;<a href=\"#\" onclick=\"currentpage=" + (pages[1] - 1) + "; getResults(" + placeholder + ", true);\">«</a>" + ret;
		
		return ret;  
}

function setCookie(c_name,value,expiredays)
{
    var exdate=new Date();
    exdate.setDate(exdate.getDate()+expiredays);
    document.cookie=c_name+ "=" +escape(value)+((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}

function getCookie(c_name)
{
    if (document.cookie.length>0)
    {
      c_start=document.cookie.indexOf(c_name + "=");
      if (c_start!=-1)
      {
        c_start=c_start + c_name.length+1;
        c_end=document.cookie.indexOf(";",c_start);
        if (c_end==-1) c_end=document.cookie.length;
        return unescape(document.cookie.substring(c_start,c_end));
      }
    }
    return "";
}

function RenderSymbols(Category, Word) {

    var ret;

    if (Category == 3 || Category == 4) {
        var syllables = Word.split('-');
        ret = "<div>";
        
        for (var i = 0; i < syllables.length; i++) {
            ret += "<img class=\"ui-widget ui-widget-header ui-corner-all\" src=\"img/fonts/LinearB/" + syllables[i] + ".png\" alt=\"" + syllables[i] + "\" title=\"" + syllables[i] + "\" align=\"left\">";
        }  
        return ret + "</div>";
    }
	else if(Category == 31)
	{
		var syllables = Word.split('-');
        ret = "<div>";
        
        for (var i = 0; i < syllables.length; i++) {
            ret += "<img class=\"ui-widget ui-widget-header ui-corner-all\" src=\"img/fonts/cypriot/" + syllables[i] + ".png\" alt=\"" + syllables[i] + "\" title=\"" + syllables[i] + "\" align=\"left\">";
        }  
        return ret + "</div>";
	}	
	else if(Category == 13)
	{
		var w = Word;
		w = w.replace(/a/gi, '𐊠');
		w = w.replace(/p/gi, '𐊡');
		w = w.replace(/d/gi, '𐊢');
		w = w.replace(/l/gi, '𐊣');
		w = w.replace(/u/gi, '𐊤');
		w = w.replace(/r/gi, '𐊥');
		w = w.replace(/λ/gi, '𐊦');
		w = w.replace(/q/gi, '𐊨');
		w = w.replace('b', '𐊩');
		w = w.replace(/m/gi, '𐊪');
		w = w.replace(/t/gi, '𐊭');
		w = w.replace(/š/gi, '𐊮');
		w = w.replace(/ś/gi, '𐊸');
		w = w.replace(/s/gi, '𐊰');
		w = w.replace(/u/gi, 'Y');
		w = w.replace(/ñ/gi, 'Φ');
		w = w.replace(/x/gi, 'X');
		w = w.replace(/n/gi, '𐊵');
		w = w.replace(/p/gi, '𐊷');
		w = w.replace(/i/gi, '𐊹');
		w = w.replace(/e/gi, '𐊺');
		w = w.replace(/w/gi, '𐊻');
		w = w.replace(/k/gi, '𐊽');
		w = w.replace(/δ/gi, '𐊾');
		w = w.replace(/ú/gi, '𐊿');
		w = w.replace(/g/gi, '𐋀');
		w = w.replace(/z/gi, '𐋂');
		w = w.replace(/τ/gi, '𐋇');
		w = w.replace(/β/gi, '𐋊');
		w = w.replace(/y/gi, '𐊤');
		w = w.replace(/ỳ/gi, '𐋈');
		w = w.replace(/j/gi, '𐋅');
		w = w.replace(/γ/gi, '𐋀');
		//w = w.replace(/?/gi, '𐊱');

		return "<div style='font-size: 16pt; line-height: 14px'>" + w + "</div>";
	}
	else if(Category == 23)
	{
		var w = Word;
		w = w.replace(/a/gi, '𐤠');
		w = w.replace(/ã/gi, '𐤵');
		w = w.replace(/b/gi, '𐤡');
		w = w.replace(/c/gi, '𐤹');
		w = w.replace(/d/gi, '𐤣');
		w = w.replace(/e/gi, '𐤤');
		w = w.replace(/ẽ/gi, '𐤶');
		w = w.replace(/f/gi, '𐤱');
		w = w.replace(/g/gi, '𐤢');
		w = w.replace(/i/gi, '𐤦');
		w = w.replace(/y/gi, '𐤧');
		w = w.replace(/k/gi, '𐤨');
		w = w.replace(/l/gi, '𐤩');
		w = w.replace(/λ/gi, '𐤷');
		w = w.replace(/m/gi, '𐤪');
		w = w.replace(/n/gi, '𐤫');
		w = w.replace(/v/gi, '𐤸');
		w = w.replace(/ν/gi, '𐤸');
		w = w.replace(/q/gi, '𐤲');
		w = w.replace(/r/gi, '𐤭');
		w = w.replace(/s/gi, '𐤳');
		w = w.replace(/ś/gi, '𐤮');
		w = w.replace(/t/gi, '𐤯');
		w = w.replace(/τ/gi, '𐤴');
		w = w.replace(/u/gi, '𐤰');
		w = w.replace(/w/gi, '𐤥');
		w = w.replace(/o/gi, '𐤬');
		w = w.replace(/-/gi, '');

		return "<div style='font-size: 16pt; line-height: 14px'>" + w + "</div>";
	}
    
    return "";
}


