﻿// VSK Related Utility Javascript Classes
$(function () {
    $(".vk-button:not(.ui-state-disabled)")
		.hover(
			function () {
			    $(this).addClass("ui-state-hover");
			},
			function () {
			    $(this).removeClass("ui-state-hover");
			}
		);
});
// Show / Hide Panels
function toggle_panel(index, pnl) {
    switch (index) {
        case 1:
            $(pnl).slideDown(1000);
            break;
        case 2:
            $(pnl).hide("highlight", 1000);
            break;
    }
}
function ShowHide(index, pnl) {
    switch (index) {
        case 1:
            $(pnl).show();
            break;
        case 2:
            $(pnl).hide();
            break;
    }
}
function toggle_tw_panel(index, pnl1, pnl2) {
    switch (index) {
        case 1:
            $(pnl1).show();
            $(pnl2).hide();
            break;
        case 2:
            $(pnl2).show();
            $(pnl1).hide();
            break;
    }
}
// search autocomplete
function src_ac(clid, surl) {
    $(clid).autocomplete({
        serviceUrl: surl,
        minChars: 2,
        delimiter: /(,|;)\s*/, // regex or character
        maxHeight: 400,
        width: 280,
        zIndex: 9999,
        deferRequestBy: 0, //miliseconds
        noCache: false //default is false, set to true to disable caching
    });
}
// Count text box characters   
function Count_Chars(obj, label, maxlength) {
    var len = obj.value.length;
    if (len >= maxlength) {
        obj.value = obj.value.substr(0, maxlength);
    }
    $(label).text(maxlength - len);
}
function ShowHidePanel(pnl, icon) {
    if ($(pnl).is(':visible')) {
        $(pnl).hide();
        $(icon).removeClass('ui-icon ui-icon-triangle-1-s');
        $(icon).addClass('ui-icon ui-icon-triangle-1-e');
    }
    else {
        $(pnl).show();
        $(icon).removeClass('ui-icon ui-icon-triangle-1-e');
        $(icon).addClass('ui-icon ui-icon-triangle-1-s');
    }
}
// check /uncheck all checkboxes in list
function SelectAll(CheckBoxControl) {
    var _value = CheckBoxControl.checked;
    if (_value == true) {
        var i;
        for (i = 0; i < document.forms[0].elements.length; i++) {
            if ((document.forms[0].elements[i].type == 'checkbox') && (document.forms[0].elements[i].name.indexOf('MyList') > -1)) {
                document.forms[0].elements[i].checked = true;
            }
        }
    }
    else {
        var i;
        for (i = 0; i < document.forms[0].elements.length; i++) {
            if ((document.forms[0].elements[i].type == 'checkbox') && (document.forms[0].elements[i].name.indexOf('MyList') > -1)) {
                document.forms[0].elements[i].checked = false;
            }
        }
    }
}
//* Ajax Related Operations
function Ajax_Process(path, params, id, tp) {
	
	$.ajax({
        type: tp,
        url: path,
        data: params,
        async: true,
        success: function (msg) {
	        $(id).html(msg);
        },
		error:function (xhr, ajaxOptions, thrownError){
                   alert(xhr.statusText);
                }  
    });
}
function Ajax_Process_v2(path, params, id, tp, loadingid) {
    
	$.ajax({
        type: tp,
        url: path,
        data: params,
        async: true,
        success: function (msg) {
           $(id).html(msg);
            //$('#' + loadingid).html('loading');
           // ShowHide(2, '#' + loadingid);
        },
		error:function (xhr, ajaxOptions, thrownError){
                   $(id).html(xhr.statusText);
                }    

    });
}
function Ajax_Process_VideoData(path, params, id, tp, loadingid) {
    $(id).html();
	$.ajax({
        type: tp,
        url: path,
        data: params,
        async: true,
        success: function (msg) {
		
           ShowMsg(id,msg,1,2);
            //$('#' + loadingid).html('loading');
           // ShowHide(2, '#' + loadingid);
        },
		error:function (xhr, ajaxOptions, thrownError){
                   ShowMsg(id,xhr.statusText,0,1);
				   
                }    

    });
}

function Ajax_Process_v3(path, params, id, tp, loadingid) {
    var message = '';
    $.ajax({
        type: tp,
        url: path,
        data: params,
        async: true,
        success: function (msg) {
            ShowHide(2, '#' + loadingid);
            message = msg;
        }
    });
    return message;
}

/* Process Like | Dislike */
function Process_Advice(path, params, id, actionid, actiontype) {
    toggle_panel(1, '#shw_lgn');
    // start posting ajax
    Ajax_Process(path, params, id, "GET");
    // disable like or dislike button
    if (actiontype == 0) {
        $(actionid).removeClass("ui-adv-icon-good");
        $(actionid).removeClass("ui-adv-icon-gd_hover");
        $(actionid).addClass("ui-fixed ui-adv-icon-good");

    } else {
        $(actionid).removeClass("ui-adv-icon-bad");
        $(actionid).removeClass("ui-adv-icon-bd_hover");
        $(actionid).addClass("ui-fixed ui-adv-icon-bad");
    }
    // disable action
}
/* Process Abuse Report */
function Process_Req(path, params, id, type) {
    toggle_panel(1, '#shw_lgn');
    // start posting ajax
    Ajax_Process(path, params, id, type);
}
/* Process Abuse Report */
function Process_Req(path, params, id, type, loadingid) {
    ShowHide(1, '#' + loadingid);
    // start posting ajax
    Ajax_Process_v2(path, params, id, type, loadingid);
}

/* Submit Abuse Report */
function Post_Abuse(path, params, id, elementid, msgid) {
    var value = $(elementid).val();
    if (value == '') {
        Display_Message(msgid, "Please select reason", 1, 200);
        return;
    }
    Display_Processing(msgid);
    Ajax_Process(path, params + "&val=" + value, id, "POST");
    toggle_panel(1, '#shw_lgn');
}
/* Submit Playlist */
function Post_Playlist(path, params, id, elementid, msgid) {
    var value = $(elementid).val();
    if (value == '') {
        Display_Message(msgid, "Please select playlist", 1, 200);
        return;
    }
    Display_Processing(msgid);
    Ajax_Process(path, params + "&val=" + value, id, "POST");
    toggle_panel(1, '#shw_lgn');
}
/* Validate and Post data */
function Post_Data(path, params, id, elementid, msgid, valmsg) {
    var value = $('#' + elementid).val();
    if (value == '') {
        Display_Message('#' + msgid, valmsg, 1, 200);
        return;
    }
    Display_Processing(msgid);
    Ajax_Process(path, params + "&val=" + value, id, "POST");
    $('#' + elementid).val('');
}
/* Display processing message */
function Display_Processing(id) {
    $(id).html("<div style='padding:4px 0px;'>Processing....</div>");
}
/* Display Message */
function Display_Message(id, msg, tp, width) {
    if (tp == 0)
        $(id).html("<div class='ui-state-highlight ui-corner-all' style='width:" + width + "px;margin:4px auto 4px auto;'>" + msg + "</div>");
    else
        $(id).html("<div class='ui-state-error ui-corner-all' style='width:" + width + "px;margin:4px auto 4px auto;'>" + msg + "</div>");
}
/* view loading */
function Expand_View(path, params, msg) {
    // collapse info view if open
    Collapse_Info();
    $('#bx_expander').addClass('box-expander-body');
    $('#bx_exp_arrow2').removeClass('ui-icon-triangle-1-s');
    $('#bx_exp_arrow2').addClass('ui-icon-triangle-1-n');
    $('#bx_exp_hd2').removeClass('box-expander-head');
    $('#bx_exp_hd2').addClass('box-expander-head-active');
    $('#bx_exp_bd2').show('slow');
    $('#bx_hd_exp2').hide('slow');
    $('#bx_exp_hd2').unbind("click");
    $('#bx_exp_hd2').bind('click', function () {
        Collapse_View(path, params, msg);
    });
    // ajax processing
    Ajax_Process(path, params, msg, "POST");

}

function Collapse_View(path, params, msg) {
    $('#bx_expander').removeClass('box-expander-body');
    $('#bx_exp_arrow2').addClass('ui-icon-triangle-1-s');
    $('#bx_exp_arrow2').removeClass('ui-icon-triangle-1-n');
    $('#bx_exp_hd2').addClass('box-expander-head');
    $('#bx_exp_hd2').removeClass('box-expander-head-active');
    $('#bx_exp_bd2').hide('slow');
    $('#bx_hd_exp2').show('slow');
    $('#bx_exp_hd2').unbind("click");
    $('#bx_exp_hd2').bind('click', function () {
        Expand_View(path, params, msg);
    });
}
/* Box behaviour design */
function Expand_Info(path, params, msg) {
    // collapse view if open
    Collapse_View(path, params, msg);
    $('#bx_expander').addClass('box-expander-body');
    $('#bx_exp_arrow').removeClass('ui-icon-triangle-1-s');
    $('#bx_exp_arrow').addClass('ui-icon-triangle-1-n');
    $('#bx_exp_hd').removeClass('box-expander-head');
    $('#bx_exp_hd').addClass('box-expander-head-active');
    $('#bx_exp_bd').show('slow');
    $('#bx_hd_exp').hide('slow');
    $('#bx_exp_hd').unbind("click");
    $('#bx_exp_hd').bind('click', function () {
        Collapse_Info();
    });
}

function Collapse_Info() {
    $('#bx_expander').removeClass('box-expander-body');
    $('#bx_exp_arrow').addClass('ui-icon-triangle-1-s');
    $('#bx_exp_arrow').removeClass('ui-icon-triangle-1-n');
    $('#bx_exp_hd').addClass('box-expander-head');
    $('#bx_exp_hd').removeClass('box-expander-head-active');
    $('#bx_exp_bd').hide('slow');
    $('#bx_hd_exp').show('slow');
    $('#bx_exp_hd').unbind("click");
    $('#bx_exp_hd').bind('click', function () {
        Expand_Info();
    });
}

/* Box behaviour design */
function Expand_Usr_Bx(path, params, output, loadingid) {
    $(output).show('slow');
    $('#bx_tp_usr_arrow').removeClass('ui-icon-triangle-1-s');
    $('#bx_tp_usr_arrow').addClass('ui-icon-triangle-1-n');
    $('#bx_tp_usr_hd').unbind("click");
    $('#bx_tp_usr_hd').bind('click', function () {
        Collapse_Usr_Bx(path, params, output, loadingid);
    });
    // ajax request
    Process_Req(path, params, output, 'GET', loadingid)
}

function Collapse_Usr_Bx(path, params, output, loadingid) {
    $('#bx_tp_usr_arrow').addClass('ui-icon-triangle-1-s');
    $('#bx_tp_usr_arrow').removeClass('ui-icon-triangle-1-n');
    $('#bx_tp_usr_hd').unbind("click");
    $('#bx_tp_usr_hd').bind('click', function () {
        Expand_Usr_Bx(path, params, output, loadingid);
    });
    $(output).hide('slow');
}

//*******************************************
// Messaging Related JQuery Classes
//*******************************************

/* JS Function used to send message */
function Send_Message(path, params, id, toid, subjectid, messageid, msgid) {
    var to = $('#' + toid).val();
    var subject = $('#' + subjectid).val();
    var message = $('#' + messageid).val();
    if (to == '') {
        Display_Message('#' + msgid, "Please Enter Valid User ID.", 1, 150);
        return;
    }
    if (message == '') {
        Display_Message('#' + msgid, "Please Enter Message To Post.", 1, 200);
        return;
    }
    Display_Processing(msgid);
    Ajax_Process(path, params + "&to=" + to + "&sub=" + subject + "&msg=" + message, id, "POST");
    $('#' + toid).val('');
    $('#' + subjectid).val('');
    $('#' + messageid).val('');
    $('#' + msgid).val('');
    $('#msg_cmp').dialog('close');
    Display_Message('#msgclient', "Message Has Been Sent.", 1, 150);

}

function fb_login(u, redirect) {
    FB.login(function(response) {
   if (response.authResponse) {
     console.log('Welcome!  Fetching your information.... ');
     FB.api('/me', function(response) {
		Process_Login(u, redirect);      
	  console.log('Good to see you, ' + response.name + '.');
       FB.logout(function(response) {
         console.log('Logged out.');
       });
     });
   } else {
     console.log('User cancelled login or did not fully authorize.');
   }
 }, { scope: 'email,user_birthday,user_hometown,publish_stream' });
}

function Process_Login(u, redirect) {
    $.ui.dialog.defaults.bgiframe = true;
    // build loading section
    loadingtext('#ft_dialog');
    $("#ft_dialog").dialog({
        bgiframe: true,
        autoOpen: false,
        modal: true
    });
    $('#ft_dialog').dialog('open');

    FB.api('/me', function (response) {
        var fb_data = "uid=" + response.id + "&fn=" + response.first_name + "&ln=" + response.last_name + "&gn=" + response.gender + "&bt=" + response.birthday + "&eml=" + response.email;
        if (response.hometown != undefined)
            fb_data = fb_data + "&loc=" + response.hometown.name;
        if (response.username != undefined)
            fb_data = fb_data + "&uname=" + response.username;
        $.ajax({
            type: 'GET',
            url: u + "handlers/signup.ashx",
            data: fb_data,
            success: function (msg) {
                switch (msg) {
                    case "nouid":
                        document.location = u + "facebook/error.aspx?status=nouid";
                        break;
                    case "emailexist":
                        document.location = u + "facebook/error.aspx?status=emailexist";
                        break;
                    case "ucsuccess":
                        document.location = u + "myaccount/Default.aspx?status=success";
                        break;
                    case "csuccess":
                        document.location = u + "myaccount/Default.aspx?status=success&clg=true";
                        break;
                    case "nologinname":
                        document.location = u + "facebook/error.aspx?status=nologinname";
                        break;
                    case "ipblocked":
                        document.location = u + "IPBlocked.aspx";
                        break;
                    case "success":
                        if (redirect != "") {
                            document.location = redirect;
                        }
                        else
                            document.location = u + "myaccount/Default.aspx";
                        break;
                }
            },error:function (xhr, ajaxOptions, thrownError){
                   alert(xhr.statusText);
                }    

			
        });
    });
}

function loadingtext(id) {
    var str = "";
    str += "<div class=\"item_pad_4_c\">";
    str += "<img src='..\/images\/loading\/loading7.gif\' style=\"width: 100px;   height: 100px;\" \/>";
    str += "<\/div>";
    str += "<div class=\"item_pad_4_c\">";
    str += "<h3>Please wait for login via facebook.<\/h3>";
    str += "<\/div>";
    $(id).html(str);
}
function ShowMsg(id, message,messagetype,icontype) {
    var str = "";
    var message_class = "ui-state-error";
    var icon_message = "Alert";
    var icon_class = "ui-icon-alert";
    switch (messagetype) {
        case 0:
            message_class = "ui-state-error";
            break;
        case 1:
            message_class = "ui-state-highlight";
            break;
    }
    switch (icontype) {
        case 0:
            icon_class = "ui-icon-alert";
            icon_message = "Alert:";
            break;
        case 1:
            icon_class = "ui-icon-info";
            icon_message = "Info:";
            break;
        case 2:
            icon_class = "ui-icon-check";
            icon_message = "Success:";
            break;
    }
    str += "<div class=\"item_pad_2 ui-corner-all\"><div class=\"" + message_class + " ui-corner-all\">";
    str += "<div style=\"float:left; width:85%;\">";
    str += "<p><span class=\"ui-icon " + icon_class + "\" style=\"float: left; margin-right: .3em;\"></span>";
    str += "<strong>" + icon_message + "</strong>";
    str += " " + message + "<\/p><\/div><div style=\"float:right; width:10%; text-align:right;\"><a href=\"javascript:void(0)\" onclick=\"toggle_panel(2,'#" + id + "');\">close<\/a><\/div><div class=\"clear\"><\/div>";
    str += "<\/div><\/div>";
    $('#' + id).html(str);
}

function ConvertSize(size) {
    var csize = "";
    if (size > 1000000000) {
        csize = Math.round(size / 1000000000) + "G";
    } else if (size > 1000000) {
        csize = Math.round(size / 1000000) + "M";
    }
    else if (size > 1000) {
        csize = Math.round(size / 1000) + "K";
    }
    else {
        csize = size + "B";
    }

    return csize;
}


