//     Page load sequence
var iframe_src;

jQuery(document).ready(function() {
    loadMenu();
    jQuery('#ToolbarIdDB').change(function(){
        ChangeToolbar();
    });
    // Behave functionality is at setBehaviors()
    iframe_src = jQuery("iframe").attr("src");
});


window.onload = function() {
    SetMainBodyHeight();
}


function ChangeToolbar ()
{
    var SelectedToolbar = jQuery('#ToolbarIdDB').val();
    jQuery.ajax({
        type: "POST",
        url: "/Ajax.php",
        data: "Type=25&toolbarId="+SelectedToolbar,
        success: function(msg){
            if (msg == 'ok')
            {
                window.location = window.location;
            }

        }
    });
}

function setBehaviors()
{
    jQuery('.apps_menu_item').mouseover(function()
    {
        }).mouseout(function()
        {
        }).click(function(event)
        {
            //return false;
            event.preventDefault();        
        var select = jQuery(this);
        var tagid = jQuery(this).attr("menu_tag_id");
        jQuery(".apps_menu_item_selected").removeClass().addClass("apps_menu_item").attr("selected","off");
        jQuery(".apps_tags_item_selected").removeClass().addClass("apps_tags_item");
        jQuery(select).removeClass("apps_menu_item").addClass("apps_menu_item_selected").attr("selected","on");
        loadTags(tagid,"0");
        var menu_tag_id = jQuery(this).attr("menu_tag_id");
        jQuery('#categoryh1').html(jQuery(this).html());        
        loadSelectedAppsByCategorie(menu_tag_id);
    });
    //set on the first menu
    //var tagidfirst = jQuery('.apps_menu_item:first').attr("menu_tag_id");
    //jQuery('.apps_menu_item:first').removeClass("apps_menu_item").addClass("apps_menu_item_selected").attr("selected","on");
    var tagidfirst = firstCategory;
    jQuery('#apps_menu_item'+tagidfirst+'.apps_menu_item').removeClass("apps_menu_item").addClass("apps_menu_item_selected").attr("selected","on");
    
    loadTags(tagidfirst,"0");
    //loadSelectedAppsByCategorie(tagidfirst);
    GetInitApps();
    TagsBehaviour();
    AppsSelectedBehaviour();
    AppPanelCloseBehaviour();
    searchBoxClean();
    searchBoxBehave();
    fun_AddClickHandlerForBody();
    fun_AddBlurHandlerForSearch();

    //toolbar preview
    jQuery("#show_tb_preview").click(function(){
        tbiframe = jQuery("#PreviewTbiframe");
        frameSrc = tbiframe.attr('src');
        tbiframe.attr('src','');
        jQuery("#tb_preview_wrap, #tb_preview").fadeIn('300',function(){
            //tbiframe.attr('src','Builder/htmlPreviewTester.php?toolbarId='+toolbarId);
            iframe_src = frameSrc;
            preview_wide_screen();
            preview_tb_effects();
        });
    }).mouseover(function(){
        jQuery(this).find("img").attr("src","http://cdn.wibiya.com/Graphics_Website/Apps/rearrange_over.png");
    }).mouseout(function(){
        jQuery(this).find("img").attr("src","http://cdn.wibiya.com/Graphics_Website/Apps/rearrange_normal.png");
    });
    jQuery("#tb_preview_icon").click(function(){
        jQuery("#tb_preview_wrap, #tb_preview").fadeOut();
    }).mouseover(function(){
        jQuery(this).removeClass("tb_preview_icon_normal").addClass("tb_preview_icon_over").children().attr("src","http://cdn.wibiya.com/Graphics_Website/basic/panel_close_over.png");
    }).mouseout(function(){
        jQuery(this).removeClass("tb_preview_icon_over").addClass("tb_preview_icon_normal").children().attr("src","http://cdn.wibiya.com/Graphics_Website/basic/panel_close_normal.png");
    });

    jQuery(".tb_preview_cancel").click(function(){
        jQuery("#tb_preview_wrap, #tb_preview").fadeOut();
    });

    
}

function AppPanelCloseBehaviour() {
    //dpanel close
    jQuery("#dpanel_icon").mouseover(function(){
        jQuery(this).removeClass("dpanel_icon_normal").addClass("dpanel_icon_over").children().attr("src","http://cdn.wibiya.com/Graphics_Website/basic/panel_close_over.png");
    }).mouseout(function(){
        jQuery(this).removeClass("dpanel_icon_over").addClass("dpanel_icon_normal").children().attr("src","http://cdn.wibiya.com/Graphics_Website/basic/panel_close_normal.png");
    }).click(function() {

        //show all app controlls
        //jQuery('.app_thumb_on').find(".app_icon_text");

        //close dpanel
        jQuery("#dpanel_wrap, #dpanel").fadeOut("fast");
        //empty dpanel content
        jQuery("#dpanel_html_body,#dpanel_settings_body,#dpanel_advanced_body,.dpanel_title,.dpanel_subtitle,.dpanel_validate").empty();
        jQuery("#dpanel_thumb_img").attr("src","");
        fieldcount = 0;

    });
}
function AppsSelectedBehaviour(){
    jQuery('.app_thumb_on,.app_thumb_off').mouseover(function(){
        jQuery(this).find(".app_icon_text").css("display","block").css("cursor","pointer");
    }).mouseout(function(){
        jQuery(this).find(".app_icon_text").css("display","none").css("cursor","default");
    }).click(function()
    {
        var appid = jQuery(this).attr("appid");
        var app = jQuery(this);
        if(jQuery(this).attr("installed")=="1")
        {
            var opentype = '3';
        }
        else if(toolbarId == "0")
        {
            var opentype = '4'; // unauthenticated
        }
        else
        {
            var opentype = '1';
        }
        loadSettings(appid,app,opentype);
    });

    jQuery('.app_link:contains("Info")').click(function(event){
        var app = jQuery(this).parent().parent().parent();
        var appid = app.attr("appid");
        var installed = app.attr("installed");
        if (toolbarId != '0')
        {
            if (installed == '1')
            {
                loadSettings(appid,app,'3');
            }
            else
            {
                loadSettings(appid,app,'1');
            }
        }
        else
        {
            loadSettings(appid,app,'4');
        }

        event.stopPropagation();
    });

    jQuery('.app_link:contains("Install")').click(function(event){
        var app = jQuery(this).parent().parent().parent();
        var appid = app.attr("appid");
        loadSettings(appid,app,'2');
        event.stopPropagation();
    });

    jQuery('.app_link:contains("Add")').click(function(event){
        var app = jQuery(this).parent().parent().parent();
        var appid = app.attr("appid");
        loadSettings(appid,app,'2');
        event.stopPropagation();
    });
}

function TagsBehaviour()
{
    jQuery('.apps_tags_item').click(function()
    {
        jQuery(".apps_tags_item_selected").removeClass().addClass("apps_tags_item");
        jQuery(this).removeClass("apps_tags_item").addClass("apps_tags_item_selected");
        var menu_tag_id = '26';
        var isMenu = jQuery(".apps_menu_item_selected").size();
        if(isMenu)
        {
            menu_tag_id = jQuery(".apps_menu_item_selected").attr("menu_tag_id");
        }
        var apps_tags_item = jQuery(this).attr("apps_tags_item");
        jQuery('#categoryh1').html(jQuery(this).text().replace(/\(\d+\)/, ''));
        loadSelectedAppsByTag(menu_tag_id,apps_tags_item);
    });
}


function loadMenu()
{
    jQuery.ajax({
        type: "POST",
        url: "/bin/handlers/App_Ajax.php",
        data: 'Type=2',
        complete: function(){
            SetMainBodyHeight();
        },
        success: function(msg){
            jQuery("#apps_menu_list").append(msg);
            setBehaviors();
        }        
    });
}

function loadSelectedAppsByTag(menu_tag_id,apps_tags_item)
{
    jQuery("input#inputString").attr("disabled", true);
    jQuery("#panel").fadeOut(500, function() {
        jQuery("#panel").html('<img src="http://cdn.wibiya.com/Graphics_Website/Apps/loading.gif" alt=" " width="32" height="32" /> <span class="app_title">Loading...</span>').show();        
        jQuery.ajax({
            type: "POST",
            url: "/bin/handlers/App_Ajax.php",
            data: 'Type=4&TagId[]=' + menu_tag_id + '&TagId[]=' + apps_tags_item + '&ToolbarId='+ toolbarId,
            complete: function(){
                SetMainBodyHeight();
            },
            success: function(msg){
                jQuery("#panel").html(msg);
                jQuery("input#inputString").removeAttr("disabled");
                AppsSelectedBehaviour();
            }
        });
    });
}


function loadSelectedAppsByCategorie(menu_tag_id)
{
    jQuery("input#inputString").attr("disabled", true);
    jQuery("#panel").fadeOut(500, function() {
        jQuery("#panel").html('<img src="http://cdn.wibiya.com/Graphics_Website/Apps/loading.gif" alt=" " width="32" height="32" /> <span class="app_title">Loading...</span>').show();
		
        if (typeof(menu_tag_id)=="undefined")
        {
            menu_tag_id=26;
            var tagId = 26;
            var select = jQuery(".apps_menu_item[menu_tag_id="+tagId+"]");
            jQuery(select).removeClass("apps_menu_item").addClass("apps_menu_item_selected").attr("selected","on");
        }
        jQuery.ajax({
            type: "POST",
            url: "/bin/handlers/App_Ajax.php",
            data: 'Type=4&TagId[]=' + menu_tag_id + '&ToolbarId='+ toolbarId,
            complete: function(){
                SetMainBodyHeight();
            },
            success: function(msg){
                jQuery("#panel").html(msg);
                jQuery("input#inputString").removeAttr("disabled");
                AppsSelectedBehaviour();
            }
        });
    });
}
function loadSelectedApp(AppId)
{
    jQuery("#panel").fadeOut(500, function() {
        jQuery("#panel").html('<img src="http://cdn.wibiya.com/Graphics_Website/Apps/loading.gif" alt=" " width="32" height="32" /> <span class="app_title">Loading...</span>').show();
		
        jQuery.ajax({
            type: "POST",
            url: "/bin/handlers/App_Ajax.php",
            data: 'Type=8&AppId=' + AppId + '&ToolbarId='+ toolbarId,
            complete: function(){
                SetMainBodyHeight();
            },
            success: function(msg){
                jQuery("#panel").html(msg);
                jQuery("input#inputString").removeAttr("disabled");
                AppsSelectedBehaviour();            
            }
        });
    });
}

function loadFreeSearch(search)
{
    jQuery("#panel").fadeOut(500, function() {
        jQuery("#panel").html('<img src="http://cdn.wibiya.com/Graphics_Website/Apps/loading.gif" alt=" " width="32" height="32" /> <span class="app_title">Loading...</span>').show();
		
        jQuery.ajax({
            type: "POST",
            url: "/bin/handlers/App_Ajax.php",
            data: 'Type=9&Search=' + search + '&ToolbarId='+ toolbarId,
            complete: function(){
                SetMainBodyHeight();
            },
            success: function(msg){
                jQuery("#panel").html(msg);
                jQuery("input#inputString").removeAttr("disabled");
                AppsSelectedBehaviour();            
            }
        });
    });
}

function loadTags(menuId,subtagId)
{
    jQuery.ajax({
        type: "POST",
        url: "/bin/handlers/App_Ajax.php",
        data: 'Type=3&TagId=' + menuId + '&ToolbarId='+ toolbarId,
        complete: function(){
            SetMainBodyHeight();
            //selectSubTag 
            var selectSubTag = jQuery(".apps_tags_item[apps_tags_item=" +subtagId+ "]");
            if(jQuery(selectSubTag).size())
            {
                jQuery("#apps_tags_list").prepend(jQuery(selectSubTag));
                jQuery(selectSubTag).removeClass("apps_tags_item").addClass("apps_tags_item_selected");
            }
        },
        success: function(msg){
            if(msg == ""){
                jQuery("#apps_tags").hide();
            }
            else{
                jQuery("#apps_tags").show();
                jQuery("#apps_tags_list").html(msg);
                TagsBehaviour();                
            }
        }
    });
}





// Application behaviour
function loadSettings(appid,app,type)
{
       jQuery.ajax({
        type: "POST",
        url: "/Ajax.php",
        data: 'Type=32&tab=' + type,
        complete: function(){

        },
        success: function(msg){
            //var AppName =  escape(app.find(".app_title").text());
            var AppName =  escape(app.find(".app_container").attr("appname"));
            window.location = "/web_application/"+AppName;
        }
    });
}

function showTabs(app)
{
    //position dpanel
    PositionDpanel();

    var app_thumb = jQuery(app).find(".app_thumb").attr("src");
    var app_title = jQuery(app).find(".app_title").html();
    jQuery("#dpanel_thumb_img").attr("src",app_thumb);
    jQuery(".dpanel_title").html(app_title);
    jQuery("#dpanel_html_body").html('<img src="http://cdn.wibiya.com/Graphics_Website/Apps/loading.gif" alt=" " width="32" height="32" /> <span class="app_title" style="width:auto;">Loading...</span>').show();

    // remove selected
    jQuery(".dpanel_link_on").removeClass().addClass("dpanel_link");

    jQuery("#dpanel_wrap, #dpanel").fadeIn("fast");
}

function setTabsBehaviours(parsed_msg,app,type){
    //set panel header - moved to showTabs()
    jQuery(".dpanel_subtitle").html(parsed_msg["ProviderName"]);
    //set panel body
    jQuery("#dpanel_html_body").html(parsed_msg["html_info"]).show();
    //empty seetings body for unauthenticated users.
    if (toolbarId == '0')
    {
        jQuery("#dpanel_settings_body").html("").hide();
    }
    else
    {
        jQuery("#dpanel_settings_body").html(parsed_msg["settings"]).hide();
    }
    //tabs Apps hide tabs links
    var settings = jQuery("#dpanel_settings_body").html();
    if (settings != "none") {
        jQuery("#dpanel_link_settings").show();
    }
    else
    {
        jQuery("#dpanel_link_settings").hide();
    }

    //get the tab body
    setTabsBody();

    if(typeof addFormField == 'function') {
        addFormField();
    }
    setInputFieldBehaviour();  
    //change to the first tab by default
    jQuery("#dpanel_link_info").removeClass().addClass("dpanel_link_on");
    //tab logic  - installed/loged out
    switch (type) {
        case "1":
            break;
        case "2":
            jQuery("#dpanel_link_settings").click();
            break;
        case "3":
            break;
        case "4":
            jQuery("#dpanel_link_settings").hide();
            break;
        default :
            break;
    }
    //Tabs mouseover
    setTabsOver();
    SaveBtnBehaviour();
    jQuery(".dpanel_link_on").unbind('mouseover').unbind('mouseout');
    
    //icon functionality - upload + my site
    if(typeof IconUrlBehaviour == 'function') {
        IconUrlBehaviour();
    }
    if(typeof SiteIconBehaviour == 'function') {
        SiteIconBehaviour();
    }

    jQuery("#dpanel_done_btn_edit").click(function(){
        window.location = 'EditApps.php';
    });
    jQuery("#dpanel_getit_btn_info").click(function(){
        window.location = 'BasicRegistration.php';
    });
    jQuery("#dpanel_done_btn_info").click(function(){
        jQuery("#dpanel_icon").trigger("click")
    });
    jQuery("#dpanel_add_btn_info").click(function(){
        jQuery("#dpanel_link_settings").trigger("click")
    });
    jQuery("#dpanel_addanother_btn_info").click(function(){
        jQuery("#dpanel_link_settings").trigger("click")
    });

//bring the dpanel to front - moved to showTabs()
}
// addFormField() is defined in application_name.js




function setInputFieldBehaviour()
{
    jQuery("#dpanel_settings_body").find(".input_normal").click(function()
    {
        var tobefocused = jQuery(this);
        jQuery("#dpanel_settings_body").find(".input_focused").removeClass("input_focused").addClass("input_normal");
        jQuery(tobefocused).removeClass("input_normal").addClass("input_focused");
    });
}
function setTabsOver()
{
    //Tabs mouseover
    jQuery(".dpanel_link").mouseover(function(){
        jQuery(this).removeClass("dpanel_link").addClass("dpanel_link_over");
    })
    .mouseout(function(){
        jQuery(this).removeClass("dpanel_link_over").addClass("dpanel_link");
    });
}
function setTabsBody()
{
    //dpanel tabs
    jQuery(".dpanel_link").click(function(){
        //switch active tab  on
        jQuery(".dpanel_link_on").removeClass().addClass("dpanel_link");
        jQuery(this).removeClass().addClass("dpanel_link_on");
        //Tabs mouseover
        setTabsOver();
        jQuery(".dpanel_link_on").unbind('mouseover').unbind('mouseout');
        jQuery(".dpanel_validate").empty();
        var linkid = jQuery(this).attr("linkid");
        switch (linkid) {
            case "1":
                jQuery("#dpanel_html_body").show();
                jQuery("#dpanel_settings_body").hide();
                break;
            case "2":
                jQuery("#dpanel_html_body").hide();
                jQuery("#dpanel_settings_body").show();
                break;
            default :
                jQuery("#dpanel_html_body").hide();
                jQuery("#dpanel_settings_body").show();
                jQuery("#dpanel_advanced_body").hide();
                break;

        }

    });
}

/*
function setFieldNumber()
{
    var search_filed_count = jQuery(".dpanel_info_wrapper").size();

    fieldcount = search_filed_count+1;
    count = 1;
    jQuery(".field_count").each(function()
    {
        var fieldnumber = count + ")";
        jQuery(this).html(fieldnumber);
        count++;
    });

}
 */
function setStringHelpBehaviour()
{
    /* jQuery(".info_tooltip").click(function()
    {
        jQuery(this).next().show();
    }).mouseout(function(){
        var msg = jQuery(this).next();
        setTimeout(function() {
            msg.fadeOut();
        }, 3000);
    });*/
    jQuery(".info_tooltip").mouseover(function()
    {
        jQuery(this).next().show();
    }).mouseout(function()
    {
        jQuery(this).next().hide();
    });
}



function setEditBehaviour()
{
    jQuery(".field_edit").click(function()
    {
        if(jQuery(this).parent().next().css("display") == 'none')
        {
            jQuery(this).parent().next().show();
        }
        else
        {
            jQuery(this).parent().next().hide();
        }
    });
}

function setRemoveBehaviour()
{
    jQuery(".field_remove").click(function()
    {
        jQuery(this).parent().parent().remove();
        fieldcount = fieldcount-1;
        setFieldNumber();
    });
}




function getViewportHeight()
{
    var height = 0;
    if (typeof window.innerWidth != "undefined")
    {
        height = window.innerHeight;
    }
    else if (typeof document.documentElement != "undefined"
        && typeof document.documentElement.clientWidth !=
        "undefined" && document.documentElement.clientWidth !== 0)
        {
        height = document.documentElement.clientHeight;
    }
    else
    {
        height = document.getElementsByTagName("body")[0].clientHeight;
    }
    return height;
}

function getViewportWidth()
{
    var width = 0;
    if (typeof window.innerWidth != "undefined")
    {
        width = window.innerWidth;
    }
    else if (typeof document.documentElement != "undefined"
        && typeof document.documentElement.clientWidth !=
        "undefined" && document.documentElement.clientWidth !== 0)
        {
        width = document.documentElement.clientWidth;
    }
    else
    {
        width = document.getElementsByTagName("body")[0].clientWidth;
    }
    return width;
}

function PositionDpanel()
{
    // shift = (H-h)/2
    var H = getViewportHeight();
    var h = 550;
    var shift_y = (H-h)/2;
    var W = getViewportWidth();
    var w = 750;
    var shift_x = (W-w)/2;
    jQuery("#dpanel_wrap").css({
        'left' : shift_x + 'px',
        'top' : shift_y + 'px'
    });
    jQuery("#dpanel").css({
        'left' : shift_x + 'px',
        'top' : shift_y + 'px'
    });
}

function lookup(inputString) {
    if(inputString.length < 2) {
        // Hide the suggestion box.
        jQuery('#suggestions').hide();
    } else {
        jQuery.post("/bin/handlers/App_Ajax.php", {
            s: ""+inputString+"",
            ToolbarId: ""+toolbarId+"",
            Type: "1"
        }, function(data){
            if(data.length >9) {
                //if empty list , returns result = "<ul></ul>" - 9 chars
                jQuery('#suggestions').show();
                jQuery('#autoSuggestionsList').html(data);
                fun_AddClickHandlerSuggestion();
            }else
            {
                jQuery('#suggestions').hide();
            }
        });
    }
} // lookup

function fill(thisValue,app_tag_Id,app_tag) {
    jQuery('input#inputString').val(thisValue);
    if(app_tag=='Tag'){
        jQuery('input#inputString').attr("tagid",app_tag_Id).attr("appid","0");
    }
    else {
        jQuery('input#inputString').attr("tagid","0").attr("appid",app_tag_Id);
    }
}

function searchBoxClean()
{
    var defaultTxt = "Search by name or tag...";
    jQuery("input#inputString").click(function()
    {
        var inputTxt = jQuery("input#inputString").val();
        if(inputTxt == defaultTxt)
        {
            jQuery(this).attr("value","");
            jQuery("input#inputString").css({
                "font-style" : "normal", 
                "color" : "#444444"
            });
        }
    });
}

function searchBoxBehave()
{
    jQuery('input#inputString').keyup(function(event){
        if (event.keyCode != 13 && event.keyCode != 38 && event.keyCode != 40 ) {
            lookup(this.value);
        }
    });
    jQuery('input#inputString').keydown(function(event){
        if(event.keyCode == 13)
        {
            jQuery("input#inputString").attr("disabled", true);
            searchBoxSubmit();
        }
    });
    jQuery('input#inputString').keydown(function(event){
        if(event.keyCode == 38 || event.keyCode == 40)
        {
            fun_AddResultNavigate(event);
        }
    });
    jQuery(".search_btn").click(function()
    {
        jQuery("input#inputString").attr("disabled", true);
        searchBoxSubmit();
    });
}

function searchBoxSubmit()
{
    //loadTags("26"); //initialize the sub categories
    jQuery(".apps_tags_item_selected").removeClass().addClass("apps_tags_item");
    jQuery(".apps_menu_item_selected").removeClass().addClass("apps_menu_item").attr("selected","off");
    /*jQuery('#suggestions').slideUp("fast",function(){
      //  
    }); // make sure you loaded the "all tags" categorie - race conditions
    */
    jQuery('#suggestions').slideUp("fast");
    
    if(jQuery('input#inputString').attr("appid")=='0') {
        if(jQuery('input#inputString').attr("tagid")=='0')
        {
            //free search
            var search = jQuery('input#inputString').val();
            jQuery('#panel').empty();
            loadFreeSearch(search);
        }
        else
        {
            //tag selected
            var tagId = jQuery('input#inputString').attr("tagid");
            //load "all apps" tag            
            var select = jQuery(".apps_menu_item[menu_tag_id="+tagId+"]");
            var isMainTag = jQuery(select).size();
            //var selectSubTag = jQuery(".apps_tags_item[apps_tags_item=" +tagId+ "]");
            //            var isSubTag = jQuery(selectSubTag).size();
            loadTags("26",tagId);

            /*if(isSubTag)
            {
                //turn the selected sub tag                
                
                
            }*/
            if(isMainTag)
            {
                //turn the selected menu tag
                jQuery(select).removeClass("apps_menu_item").addClass("apps_menu_item_selected").attr("selected","on");
            }
            tagId = parseInt(tagId);
            loadSelectedAppsByCategorie(tagId);
        }
    }
    else {
        //app selected
        var AppId = jQuery('input#inputString').attr("appid");
        loadSelectedApp(AppId);
    }
    jQuery('input#inputString').attr("tagid","0").attr("appId","0");
//jQuery('#suggestions').hide();

}
function fun_AddClickHandlerForBody() {
    jQuery("body").click(function() {
        jQuery('#suggestions').hide();
        jQuery("body").unbind('click');
    });
}

function fun_AddBlurHandlerForSearch() {
    jQuery("input#inputString").blur(function () {
        var defaultTxt = "Search by name or tag...";
        var inputTxt = jQuery("input#inputString").val();
        if(inputTxt == "")
        {
            jQuery("input#inputString").css({
                "font-style" : "italic", 
                "color" : "#c0c0c0"
            }).attr("value",defaultTxt);
        }
    });
}

function fun_AddClickHandlerSuggestion() {
    jQuery(".suggestionList li").click(function()
    {
        //loadTags("26"); //initalize tags
        jQuery('#suggestions').hide();
        searchBoxSubmit();
    });
}

function fun_AddResultNavigate(event)
{
    var isAppSelected = jQuery(".resultSelect").size();
    var origTxt = jQuery('input#inputString').val();
    if(isAppSelected == 0)
    {
        jQuery(".suggestionList li:first").addClass("resultSelect");
    }
    else
    {
        if (event.keyCode == 40) {
            jQuery(".resultSelect").removeClass("resultSelect").next().addClass("resultSelect");
        }
        if (event.keyCode == 38) {
            jQuery(".resultSelect").removeClass("resultSelect").prev().addClass("resultSelect");
        }
    }
    var evalFunc = new jQuery(".resultSelect").attr("onclick");
    jQuery(evalFunc);
}
function SaveBtnBehaviour()
{
    jQuery("#dpanel_add_btn_info").mouseover(function(){
        jQuery(this).attr("src","http://cdn.wibiya.com/Graphics_Website/basic/add_over.png");
    }).mouseout(function(){
        jQuery(this).attr("src","http://cdn.wibiya.com/Graphics_Website/basic/add_normal.png");
    });
    jQuery("#dpanel_done_btn").mouseover(function(){
        jQuery(this).attr("src","http://cdn.wibiya.com/Graphics_Website/basic/saveadd_over.png");
    }).mouseout(function(){
        jQuery(this).attr("src","http://cdn.wibiya.com/Graphics_Website/basic/saveadd_normal.png");
    });    
    jQuery("#dpanel_addanother_btn_info").mouseover(function(){
        jQuery(this).attr("src","http://cdn.wibiya.com/Graphics_Website/basic/addanother_over.png");
    }).mouseout(function(){
        jQuery(this).attr("src","http://cdn.wibiya.com/Graphics_Website/basic/addanother_normal.png");
    });
}

function getMainBodyHeight()
{
    var height = 0;
    if (typeof window.innerWidth != "undefined")
    {
        height = window.innerHeight;
    }
    else if (typeof document.documentElement != "undefined"
        && typeof document.documentElement.clientWidth !=
        "undefined" && document.documentElement.clientWidth !== 0)
        {
        height = document.documentElement.clientHeight;
    }
    else
    {
        height = document.getElementsByTagName("body")[0].clientHeight;
    }
    /*header 118, footer 50 , padding 30*/
    var abs_height = height - 198;
    var measured_height = document.getElementById('main_body').scrollHeight;
    var h = 0;
    if (document.getElementById('apps_list'))
    {
        var panel_height = document.getElementById('apps_list').scrollHeight;
        panel_height = panel_height + 100;
        //Math.min for feewr application load after first load streched the body. this reduces the body
        abs_height = panel_height;
        h =  Math.max(abs_height,panel_height);
    }
    else
    {
        h =  Math.max(abs_height,measured_height);
    }

    return h;
}
function SetMainBodyHeight()
{
    var agent= navigator.userAgent.toLowerCase();
    var ie = agent.indexOf("msie")>=0;
    var ie7=ie && agent.indexOf("msie 7")>=0;
    if (ie7){
        var body_height = getMainBodyHeight();
        jQuery("#main_body").css("height",body_height);
    }
}

function fade_out_ajaxon_fade_in() {
    jQuery("#panel").fadeOut(500, function() {
        jQuery("#panel").html('<img src="http://cdn.wibiya.com/Graphics_Website/Apps/loading.gif" alt=" " width="32" height="32" /> <span class="app_title">Loading...</span>').show();
    });
}


function Position_tb_preview(resolution)
{
    // shift = (H-h)/2
    var w = resolution;
    var W = getViewportWidth();
    var shift_x = (W-w)/2 - 25; // account scroll
    shift_x = shift_x + 'px' ;
    var H = getViewportHeight();
    var h = 240;
    var shift_y = (H-h)/2 + 'px' ;
    /* jQuery("#tb_preview").css({
        'top' : shift_y + 'px',
        'left' : shift_x + 'px'
    });*/
    jQuery("#tb_preview").animate({
        'top' : '220px' ,
        'left' : shift_x
    }, "400" );
}



function preview_width_control()
{


    jQuery("#tb_preview_wide").click(function()
    {
        var iframe_src_screen_mode = iframe_src + "&screen_mode=1400";
        jQuery("iframe").attr("src",iframe_src_screen_mode);
    });

    jQuery("#tb_preview_1024").click(function()
    {
        var iframe_src_screen_mode = iframe_src + "&screen_mode=1024";
        jQuery("iframe").attr("src",iframe_src_screen_mode);
    });
}

function preview_ie_fix_height()
{
    if(jQuery.browser.msie){
        var w_width = jQuery(window).width();
        w_width = w_width * 0.95;
        if (w_width < jQuery("#tb_preview_html_body").width())
        {  // account for scroll
            jQuery("#tb_preview_body_wrapper").height(135);
        }
        else{
            jQuery("#tb_preview_body_wrapper").height(120);

        }
    }
}


function preview_tb_effects() {
    jQuery("#tb_preview_1024, #tb_preview_wide").removeClass("tb_preview_btn_selected");

    jQuery("#tb_preview_1024").click(function()
    {
        jQuery("#tb_preview_1024, #tb_preview_wide").removeClass("tb_preview_btn_selected");
        jQuery(this).addClass("tb_preview_btn_selected");
    }).mouseover(function(){
        jQuery(this).addClass("tb_preview_btn_over");
    }).mouseout(function(){
        jQuery(this).removeClass("tb_preview_btn_over");
    });


    jQuery("#tb_preview_wide").click(function()
    {
        jQuery("#tb_preview_1024, #tb_preview_wide").removeClass("tb_preview_btn_selected");
        jQuery(this).addClass("tb_preview_btn_selected");
    }).mouseover(function(){
        jQuery(this).addClass("tb_preview_btn_over");
    }).mouseout(function(){
        jQuery(this).removeClass("tb_preview_btn_over");
    });

}


function preview_wide_screen()
{
    //var window_VP = jQuery(window).width();

    jQuery("#tb_preview_1024, #tb_preview_wide").unbind("click");
    jQuery("#tb_preview_html_body").hide();
    var wide_preview = jQuery(window).width()*0.95;
    var duration  = 400;

    if (wide_preview > 1400)
    {
        //no scroll
        //resize tb_preview
        //load 1400 tb

        jQuery("iframe").attr("src","");
        Position_tb_preview(wide_preview);
        jQuery("#tb_preview").animate({
            width : wide_preview,
            height : "214px"
        }, duration);
        jQuery("#tb_preview_body_wrapper").animate({
            height : "93px"
        }, duration);
        var iframe_src_screen_mode = iframe_src + "&screen_mode=" + wide_preview + "&no_scroll=1";
        jQuery("iframe").attr("src",iframe_src_screen_mode).animate({
            height : "97px"
        }, duration).show();

        jQuery("#tb_preview_wide").click(function()
        {
            jQuery("#tb_preview_html_body").hide();
            wide_preview = jQuery(window).width()*0.95;
            jQuery("iframe").hide().attr("src","");
            Position_tb_preview(wide_preview);
            jQuery("#tb_preview").animate({
                width : wide_preview,
                height : "214px"
            }, duration);
            jQuery("#tb_preview_body_wrapper").animate({
                height : "93px"
            }, duration);

            var iframe_src_screen_mode = iframe_src + "&screen_mode=" + wide_preview + "&no_scroll=1";
            jQuery("iframe").attr("src",iframe_src_screen_mode).animate({
                height : "97px"
            }, duration).show();
        });

        jQuery("#tb_preview_1024").click(function()
        {
            jQuery("#tb_preview_html_body").hide();
            wide_preview = 1024;
            jQuery("iframe").hide().attr("src","");
            Position_tb_preview(wide_preview);
            jQuery("#tb_preview").animate({
                width : wide_preview,
                height : "214px"
            }, duration);
            jQuery("#tb_preview_body_wrapper").animate({
                height : "93px"
            }, duration);

            iframe_src_screen_mode = iframe_src + "&screen_mode=1024" + "&no_scroll=1";
            jQuery("iframe").attr("src",iframe_src_screen_mode).animate({
                height : "97px"
            }, duration).show();
        });
    }


    if (wide_preview < 1400 && wide_preview > 1024 )
    {

        //scroll no need to resize
        //load 1400 tb
        jQuery("iframe").hide().attr("src","");
        Position_tb_preview(wide_preview);
        jQuery("#tb_preview").animate({
            width : wide_preview,
            height : "229px"
        }, duration);
        jQuery("#tb_preview_body_wrapper").animate({
            height : "110px"
        }, duration);


        iframe_src_screen_mode = iframe_src + "&screen_mode=1400" + "&no_scroll=0";
        jQuery("iframe").attr("src",iframe_src_screen_mode).animate({
            height : "110px"
        }, duration).show();

        jQuery("#tb_preview_wide").click(function()
        {
            jQuery("#tb_preview_html_body").hide();
            wide_preview = jQuery(window).width()*0.95;
            Position_tb_preview(wide_preview);
            jQuery("iframe").hide().attr("src","");
            jQuery("#tb_preview").animate({
                width : wide_preview,
                height : "229px"
            }, duration);
            jQuery("#tb_preview_body_wrapper").animate({
                height : "110px"
            }, duration);

            iframe_src_screen_mode = iframe_src + "&screen_mode=1400" + "&no_scroll=0";
            jQuery("iframe").attr("src",iframe_src_screen_mode).animate({
                height : "110px"
            }, duration).show();
        });

        jQuery("#tb_preview_1024").click(function()
        {
            jQuery("#tb_preview_html_body").hide();
            wide_preview = 1024;
            jQuery("iframe").hide().attr("src","");
            Position_tb_preview(wide_preview);
            jQuery("#tb_preview").animate({
                width : wide_preview,
                height : "214px"
            }, duration);
            jQuery("#tb_preview_body_wrapper").animate({
                height : "93px"
            }, duration);

            iframe_src_screen_mode = iframe_src + "&screen_mode=1024" + "&no_scroll=1";
            jQuery("iframe").attr("src",iframe_src_screen_mode).animate({
                height : "97px"
            }, duration).show();
        });
    }
    if (wide_preview < 1024)
    {
        wide_preview = 1000;
        jQuery("iframe").hide().attr("src","");
        Position_tb_preview(wide_preview);
        jQuery("#tb_preview").animate({
            width : wide_preview,
            height : "229px"
        }, duration);
        jQuery("#tb_preview_body_wrapper").animate({
            height : "110px"
        }, duration);

        iframe_src_screen_mode = iframe_src + "&screen_mode=1024" + "&no_scroll=0";
        jQuery("iframe").attr("src",iframe_src_screen_mode).animate({
            height : "110px"
        }, duration).show();

        jQuery("#tb_preview_wide").click(function()
        {
            jQuery("#tb_preview_html_body").hide();
            Position_tb_preview(wide_preview);
            jQuery("iframe").hide().attr("src","");
            jQuery("#tb_preview").animate({
                width : wide_preview,
                height : "229px"
            }, duration);
            jQuery("#tb_preview_body_wrapper").animate({
                height : "110px"
            }, duration);

            iframe_src_screen_mode = iframe_src + "&screen_mode=1400" + "&no_scroll=0";
            jQuery("iframe").attr("src",iframe_src_screen_mode).animate({
                height : "110px"
            }, duration).show();
        });

        jQuery("#tb_preview_1024").click(function()
        {
            jQuery("#tb_preview_html_body").hide();
            Position_tb_preview(wide_preview);
            jQuery("iframe").hide().attr("src","");
            jQuery("#tb_preview").animate({
                width : wide_preview,
                height : "229px"
            }, duration);
            jQuery("#tb_preview_body_wrapper").animate({
                height : "110px"
            }, duration);

            iframe_src_screen_mode = iframe_src + "&screen_mode=1024" + "&no_scroll=0";
            jQuery("iframe").attr("src",iframe_src_screen_mode).animate({
                height : "110px"
            }, duration).show();
        });
    }

    jQuery("iframe").load(function (){
        jQuery("#tb_preview_html_body").fadeIn(300);
    });
}

function GetInitApps()
{
    if (LastState == null) {
        var tagidfirst = jQuery('.apps_menu_item_selected').attr("menu_tag_id");
        if(searchTag!=-1) {loadSelectedAppsByTag(firstCategory,searchTag)}
        else{ loadSelectedAppsByCategorie(tagidfirst); searchTagName = jQuery('.apps_menu_item_selected').html()}
        jQuery('#categoryh1').html(searchTagName);
        return;
    }
    else
    {
        switch (LastState.type) {
            case 'tag':
                  if (LastState.tag.length >1) {
                    loadSelectedAppsByTag(LastState.tag[0],LastState.tag[1]);
                    var tagid = LastState.tag[0];
                    var select = jQuery(".apps_menu_item[menu_tag_id='"+tagid+"']");
                    jQuery(".apps_menu_item_selected").removeClass().addClass("apps_menu_item").attr("selected","off");
                    jQuery(".apps_tags_item_selected").removeClass().addClass("apps_tags_item");
                    jQuery(select).removeClass("apps_menu_item").addClass("apps_menu_item_selected").attr("selected","on");
                    loadTags(LastState.tag[0],LastState.tag[1]);
                    
                }
                else
                 {
                    loadSelectedAppsByCategorie(LastState.tag[0]);
                    var tagid = LastState.tag[0];
                    var select = jQuery(".apps_menu_item[menu_tag_id='"+tagid+"']");
                    jQuery(".apps_menu_item_selected").removeClass().addClass("apps_menu_item").attr("selected","off");
                    jQuery(".apps_tags_item_selected").removeClass().addClass("apps_tags_item");
                    jQuery(select).removeClass("apps_menu_item").addClass("apps_menu_item_selected").attr("selected","on");
                    loadTags(LastState.tag[0],"0");
                 }
                break;
            case 'search':
                 jQuery("#inputString").val(LastState.search);
                 searchBoxSubmit();
                break;
        }


    }
}
