// JavaScript Document //Harry Bomrah var orbitDesktopAPI = function(){ o = this; this.windowcounter = 0; this.notify = function(msg,type,time){ //takes 3 arguments //msg (string) : message to display //type (string : success, imp, alert //time (int) : duration for notification in seconds var $notify = $('#orbitnote'), ani_method = { direction: 'up',easing: 'easeInOutQuint' }, img, n_height; if(!type)type=""; switch(type){ case "alert": img = "exclamation-sign"; break; case "imp": img = "warning-sign"; break; case "success": img = "ok"; break; default: img = "exclamation-sign"; break; } if( !time || time > 20) time = 5000; else time = time*1000; var sign = '
', message = '
'+ msg +'
', item = '
'+ sign + message +'
'; $(item) .prependTo($notify) .stop(1,1) .toggle('slide', ani_method, 300) .delay(time) .toggle('slide', ani_method, 800); $notify.find('.note_holder:hidden').remove(); }; this.executeFunc = function(func,callbackFn){ //takes 2 arguments //func (object Function) : the function which has to be executed //callbackFn (object function) : the function for callback func.call(this); if(callbackFn){ callbackFn.call(this,func); } }; this.sortJSON = function(field, reverse, primer){ //takes 3 arguments //field (string): it is the field on which sorting has to be done //reverse (boolean): this is for asc or desc //primer (method): for example pass parseInt for converting the field attribute in integer var key = function (x) {return primer ? primer(x[field]) : x[field]}; return function (a,b) { var A = key(a), B = key(b); return ((A < B) ? -1 : (A > B) ? +1 : 0) * [-1,1][+!!reverse]; } }; this.rgb2hex = function(rgb) { // takes 1 parameter // rgb (string) : pass rgb string to convert rgb = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/); var hex = function(x) { return ("0" + parseInt(x).toString(16)).slice(-2); } return "#" + hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]); }; this.changeWallpaper = function(wallpaper){ //takes 1 parameter //wallpaper (string): takes wallpaper and sets the wallpaper $("#thmbackground").attr("src",o.wallpaperPath+wallpaper); o.saveWallpaper(wallpaper); }; this.confirm = function(settings,callbackfn){ //takes set of arguments in array //settings.buttons (array string) : name of buttons to be displayed //settings.highlighted (integer) : takes either 1 or 2.. will highlight the button which is passed //settings.message (string) : takes a string and message to be displayed on the confirmbox //callbackfn (object function) : function to callback if(!settings.buttons)settings.buttons=["Ok","Cancel"]; if(settings.highlighted!=1 && settings.highlighted!=2)settings.highlighted=2; if(!settings.message)settings.message = "Are you sure?" var $confirm = $("#orbitdiag"); $confirm.find(".diag_action a").removeClass("thmc1 thmtxt").addClass("admbg admtxt"); $confirm.find(".diag_message").text(settings.message); if(settings.highlighted == 1) $confirm.find("#diag_confirm").removeClass("admbg admtxt").addClass("thmc1 thmtxt"); if(settings.highlighted == 2) $confirm.find("#diag_cancel").removeClass("admbg admtxt").addClass("thmc1 thmtxt"); $confirm.find("#diag_confirm").text(settings.buttons[0]).one("click",function(){ $confirm.stop(1,1).fadeOut(); $confirm.find(".diag_action a").unbind(); if(typeof callbackfn=="function") callbackfn.call(this,true); }); $confirm.find("#diag_cancel").text(settings.buttons[1]).one("click",function(){ $confirm.stop(1,1).fadeOut(); $confirm.find(".diag_action a").unbind(); if(typeof callbackfn=="function") callbackfn.call(this,false); }); $confirm.stop(1,1).fadeIn(); }; this.getArrayfromJson = function(tjson,key){ // returns array and takes json object and key //json (json object) : json object from which the key has to be extracted // key (string) : key which has to be extracted var tempArray = new Array; $.each(tjson,function(i,val){ tempArray.push(val[key]); }) return tempArray; }; this.appWindow = function(options,callbackfn){ //takes set of arguments as array and gives callback //settings.method (string) : like open and close //settings.title (string) : the window title //settings.extUrl (boolean) : true for opening external url else false //settings.appid (string) : appid.. user can use this appid to open or close or refresh the window //settings.url (string) : it is the url if you want to force external url to open in appwindow... you have to pass extURL in appid if you want to open externalurl var settings = { method : "open", extUrl : true, title : "New Window" } $.extend(settings,options); if(!settings.appid){ o.notify("Invalid AppID.","imp",3); return; } var isWindow = ($("div.app_frame[data-app="+settings.appid+"]").length > 0 ? $("div.app_frame[data-app="+settings.appid+"]") : null); if(isWindow){ o.minimizeBarManager.maximize(isWindow); return; } if(settings.method == 'open'){ var appurl = "http://www.rulingcom.com"; o.windowcounter++; if(settings.extUrl){ if(settings.url){ if(settings.url.substr(0,4)!="http")settings.url = "http://"+settings.url; var urlregex = new RegExp("^(http:\/\/www.|https:\/\/www.|ftp:\/\/www.|www.){1}([0-9A-Za-z]+\.)"); if(urlregex.test(settings.url)) appurl = settings.url; else{ o.notify("Invalid URL","alert",3); return; } } else{ o.notify("Invalid URL","alert",3); return; } } var whtml =$('
'+settings.title+'
'); $(o.contentHolder).append(whtml); var parentwindow = $(o.contentHolder).find("#app_frame_"+o.windowcounter); var app_holder_height = parentwindow.height() - 72; var app_holder_width = parentwindow.width(); parentwindow.find("iframe").attr({"height":app_holder_height,"width":app_holder_width}); parentwindow.find(".app_holder").height(app_holder_height); parentwindow.find(".icon-remove").click(function(){ o.appWindow.close(parentwindow); }); parentwindow.find(".icon-minus").click(function(){ o.appWindow.minimize(parentwindow); }) } this.appWindow.close = function(win){ win.remove(); } this.appWindow.minimize = function(win){ o.minimizeBarManager.minimize(win) } if(typeof callbackfn=="function"){ callbackfn.call(this,parentwindow); } return parentwindow; }; this.toolPopup = function(settings){ if(settings == "destroy"){ $(".desktop_toolpopup").hide("fold",function(){ $(this).remove(); $(this).parent().css("position",""); }) return; } if(settings.parent){ if(settings.parent.find("div.desktop_toolpopup").length == 0){ settings.height = (!settings.height ? "50px" : settings.height); settings.width = (!settings.width ? "150px" : settings.width); settings.html = (!settings.html ? "" : settings.html); //Events settings.onClose = (!settings.onClose ? function(){} : settings.onClose); settings.beforeOpen = (!settings.beforeOpen ? function(){} : settings.beforeOpen); settings.onOpen = (!settings.onOpen ? function(){} : settings.onOpen); settings.beforeClose = (!settings.beforeClose ? function(){} : settings.beforeClose); //Events end var leftpos = settings.parent.outerWidth(); var toolpopup = $("
"+settings.html+"
"); settings.parent.css("position","relative"); settings.parent.prepend(toolpopup); toolpopup.click(function(event){ event.stopPropagation(); }); settings.beforeOpen.call(this); toolpopup.show("fold",function(){ settings.onOpen.call(this); $(document).unbind("click"); $(document).one("click",function(e){ settings.beforeClose.call(this); toolpopup.hide("fold",function(){ toolpopup.remove(); settings.parent.css("position",""); settings.onClose.call(this); }); }) }); } } }; }; orbitDesktopAPI.prototype.notifyImgPath = "temp"; orbitDesktopAPI.prototype.wallpaperPath = "temp";