2012-03-28 10:53:30 +00:00
// JavaScript Document
2012-04-18 14:01:12 +00:00
//Harry Bomrah
2012-03-28 10:53:30 +00:00
var orbitDesktopAPI = function ( ) {
o = this ;
2012-05-25 07:41:07 +00:00
this . windowcounter = 0 ;
2012-03-29 11:50:23 +00:00
this . notify = function ( msg , type , time ) {
2012-05-25 07:41:07 +00:00
//takes 3 arguments
//msg (string) : message to display
//type (string : success, imp, alert
//time (int) : duration for notification in seconds
2012-03-29 11:50:23 +00:00
var $notify = $ ( "#orbitnote" ) ;
2012-04-05 20:42:20 +00:00
var img , n _height ;
2012-03-29 11:50:23 +00:00
if ( ! type ) type = "" ;
switch ( type ) {
case "alert" :
img = "note_alert.png" ;
break ;
case "imp" :
img = "note_imp.png" ;
break ;
case "success" :
img = "note_success.png" ;
break ;
default :
img = "note_alert.png" ;
break ;
}
2012-04-05 12:32:56 +00:00
$notify . find ( "img#note_img" ) . attr ( "src" , o . notifyImgPath + img ) ;
2012-12-05 09:09:17 +00:00
$notify . find ( ".note_message" ) . html ( msg ) ;
2012-04-05 20:42:20 +00:00
n _height = $notify . outerHeight ( ) ;
2012-03-29 11:50:23 +00:00
if ( ! time ) time = 5000 ; else time = time * 1000 ;
2012-04-05 20:42:20 +00:00
$notify
. css ( { 'top' : - n _height , 'display' : 'block' , 'opacity' : 0 } )
. animate ( { top : 0 , opacity : 1 } , 200 )
. delay ( time )
. animate ( { top : - n _height , opacity : 0 } , 200 ) ;
2012-03-28 10:53:30 +00:00
} ;
2012-04-11 07:31:10 +00:00
this . executeFunc = function ( func , callbackFn ) {
2012-05-25 07:41:07 +00:00
//takes 2 arguments
//func (object Function) : the function which has to be executed
//callbackFn (object function) : the function for callback
2012-04-11 07:31:10 +00:00
func . call ( this ) ;
if ( callbackFn ) {
callbackFn . call ( this , func ) ;
}
} ;
this . sortJSON = function ( field , reverse , primer ) {
2012-05-25 07:41:07 +00:00
//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
2012-04-11 07:31:10 +00:00
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 ] ;
}
2012-04-18 10:15:02 +00:00
} ;
this . rgb2hex = function ( rgb ) {
2012-05-25 07:41:07 +00:00
// takes 1 parameter
// rgb (string) : pass rgb string to convert
2012-04-18 10:15:02 +00:00
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 ] ) ;
} ;
2012-04-18 14:01:12 +00:00
this . changeWallpaper = function ( wallpaper ) {
2012-05-25 07:41:07 +00:00
//takes 1 parameter
//wallpaper (string): takes wallpaper and sets the wallpaper
2012-04-18 14:01:12 +00:00
$ ( "img#thmbackground" ) . attr ( "src" , o . wallpaperPath + wallpaper ) ;
o . saveWallpaper ( wallpaper ) ;
} ;
2012-04-19 07:36:03 +00:00
this . confirm = function ( settings , callbackfn ) {
2012-05-25 07:41:07 +00:00
//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
2012-04-19 07:36:03 +00:00
if ( ! settings . buttons ) settings . buttons = [ "Ok" , "Cancel" ] ;
2012-04-24 08:45:26 +00:00
if ( settings . highlighted != 1 && settings . highlighted != 2 ) settings . highlighted = 2 ;
2012-04-19 07:36:03 +00:00
if ( ! settings . message ) settings . message = "Are you sure?"
2012-04-18 14:01:12 +00:00
var $confirm = $ ( "#orbitdiag" ) ;
2012-04-24 08:45:26 +00:00
$confirm . find ( ".diag_action a" ) . removeClass ( "thmc1 thmtxt" ) . addClass ( "admbg admtxt" ) ;
2012-04-19 07:36:03 +00:00
$confirm . find ( ".diag_message" ) . text ( settings . message ) ;
if ( settings . highlighted == 1 )
2012-04-18 14:01:12 +00:00
$confirm . find ( "#diag_confirm" ) . removeClass ( "admbg admtxt" ) . addClass ( "thmc1 thmtxt" ) ;
2012-04-19 07:36:03 +00:00
if ( settings . highlighted == 2 )
2012-04-18 14:01:12 +00:00
$confirm . find ( "#diag_cancel" ) . removeClass ( "admbg admtxt" ) . addClass ( "thmc1 thmtxt" ) ;
2012-04-19 07:36:03 +00:00
$confirm . find ( "#diag_confirm" ) . text ( settings . buttons [ 0 ] ) . one ( "click" , function ( ) {
2012-04-26 15:18:35 +00:00
$confirm . stop ( 1 , 1 ) . fadeOut ( ) ;
2012-04-18 14:01:12 +00:00
$confirm . find ( ".diag_action a" ) . unbind ( ) ;
if ( typeof callbackfn == "function" )
callbackfn . call ( this , true ) ;
} ) ;
2012-04-19 07:36:03 +00:00
$confirm . find ( "#diag_cancel" ) . text ( settings . buttons [ 1 ] ) . one ( "click" , function ( ) {
2012-04-26 15:18:35 +00:00
$confirm . stop ( 1 , 1 ) . fadeOut ( ) ;
2012-04-18 14:01:12 +00:00
$confirm . find ( ".diag_action a" ) . unbind ( ) ;
if ( typeof callbackfn == "function" )
callbackfn . call ( this , false ) ;
} ) ;
2012-04-26 15:18:35 +00:00
$confirm . stop ( 1 , 1 ) . fadeIn ( ) ;
2012-04-24 08:45:26 +00:00
} ;
2012-05-11 07:27:16 +00:00
this . getArrayfromJson = function ( tjson , key ) {
2012-05-25 07:41:07 +00:00
// 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
2012-05-11 07:27:16 +00:00
var tempArray = new Array ;
$ . each ( tjson , function ( i , val ) {
tempArray . push ( val [ key ] ) ;
} )
return tempArray ;
2012-05-25 07:41:07 +00:00
} ;
this . appWindow = function ( settings , callbackfn ) {
//takes set of arguments as array and gives callback
//settings.method (string) : like open and close
//settings.title (string) : the window title
//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
if ( typeof settings == "undefined" ) settings = { } ;
if ( ! settings . appid ) {
o . notify ( "Invalid AppID." , "imp" , 3 ) ;
return ;
}
if ( ! settings . method ) settings . method = "open" ;
if ( settings . method == 'open' ) {
var appurl = "http://www.rulingcom.com" ;
o . windowcounter ++ ;
if ( ! settings . title ) settings . title = "New Window " + o . windowcounter ;
if ( settings . appid == "extURL" ) {
if ( settings . url ) {
if ( settings . url . substr ( 0 , 3 ) != "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 = $ ( '<div id="app_frame_' + o . windowcounter + '" class="thmc2 app_frame" data-content="' + settings . appid + '"><div id="content"><div id="header" class="hh3"><div class="dtitle w2 hh3 hp" style="text-transform:capitalize;"><span class="thmtxth">' + settings . title + '</span></div><span class="icon-remove hh3 hp thmtxt"></span></div><div id="holder_' + o . windowcounter + '" class="app_holder"><iframe src="' + appurl + '" frameborder="0" scrolling="auto"></iframe><div class="clear"></div></div></div></div>' ) ;
$ ( o . contentHolder ) . append ( whtml ) ;
var parentwindow = $ ( o . contentHolder ) . find ( "div#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 ( "div.app_holder" ) . height ( app _holder _height ) ;
parentwindow . find ( "span.icon-remove" ) . click ( function ( ) {
parentwindow . remove ( ) ;
} )
}
if ( typeof callbackfn == "function" ) {
callbackfn . call ( this ) ;
}
} ;
2012-06-26 07:59:28 +00:00
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 ) ;
2012-07-06 08:11:03 +00:00
//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
2012-07-05 08:23:13 +00:00
var leftpos = settings . parent . outerWidth ( ) ;
var toolpopup = $ ( "<div class='desktop_toolpopup' style='height:" + settings . height + ";width:" + settings . width + "; left:" + leftpos + "px;'>" + settings . html + "</div>" ) ;
2012-06-26 07:59:28 +00:00
settings . parent . css ( "position" , "relative" ) ;
settings . parent . prepend ( toolpopup ) ;
toolpopup . click ( function ( event ) {
event . stopPropagation ( ) ;
} ) ;
2012-07-06 08:11:03 +00:00
settings . beforeOpen . call ( this ) ;
2012-06-26 07:59:28 +00:00
toolpopup . show ( "fold" , function ( ) {
2012-07-06 08:11:03 +00:00
settings . onOpen . call ( this ) ;
2012-06-26 07:59:28 +00:00
$ ( document ) . unbind ( "click" ) ;
$ ( document ) . one ( "click" , function ( e ) {
2012-07-06 08:11:03 +00:00
settings . beforeClose . call ( this ) ;
2012-06-26 07:59:28 +00:00
toolpopup . hide ( "fold" , function ( ) {
toolpopup . remove ( ) ;
settings . parent . css ( "position" , "" ) ;
2012-07-06 08:11:03 +00:00
settings . onClose . call ( this ) ;
2012-06-26 07:59:28 +00:00
} ) ;
} )
} ) ;
}
}
}
2012-03-29 11:50:23 +00:00
} ;
2012-04-18 14:01:12 +00:00
orbitDesktopAPI . prototype . notifyImgPath = "temp" ;
orbitDesktopAPI . prototype . wallpaperPath = "temp" ;