2013-07-30 08:14:28 +00:00
// 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
2013-07-30 08:39:01 +00:00
var $notify = $ ( '#orbitnote' ) ,
ani _method = { direction : 'up' , easing : 'easeInOutQuint' } ,
img , n _height ;
2013-07-30 08:14:28 +00:00
if ( ! type ) type = "" ;
switch ( type ) {
case "alert" :
2013-07-30 08:39:01 +00:00
img = "exclamation-sign" ;
2013-07-30 08:14:28 +00:00
break ;
case "imp" :
2013-07-30 08:39:01 +00:00
img = "warning-sign" ;
2013-07-30 08:14:28 +00:00
break ;
case "success" :
2013-07-30 08:39:01 +00:00
img = "ok" ;
2013-07-30 08:14:28 +00:00
break ;
default :
2013-07-30 08:39:01 +00:00
img = "exclamation-sign" ;
2013-07-30 08:14:28 +00:00
break ;
}
2013-07-30 08:39:01 +00:00
if ( ! time || time > 20 ) time = 5000 ; else time = time * 1000 ;
var sign = '<div class="note_type"><span class="sign icon-' + img + '"></span></div>' ,
message = '<div class="note_message">' + msg + '</div>' ,
item = '<div class="note_holder admbg">' + sign + message + '</div>' ;
$ ( item )
. prependTo ( $notify )
. stop ( 1 , 1 )
. toggle ( 'slide' , ani _method , 300 )
2013-07-30 08:14:28 +00:00
. delay ( time )
2013-07-30 08:39:01 +00:00
. toggle ( 'slide' , ani _method , 800 ) ;
$notify . find ( '.note_holder:hidden' ) . remove ( ) ;
2013-07-30 08:14:28 +00:00
} ;
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
2013-07-30 08:39:01 +00:00
$ ( "#thmbackground" ) . attr ( "src" , o . wallpaperPath + wallpaper ) ;
2013-07-30 08:14:28 +00:00
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 ;
} ;
2013-07-30 08:39:01 +00:00
this . appWindow = function ( options , callbackfn ) {
2013-07-30 08:14:28 +00:00
//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
2013-07-30 08:39:01 +00:00
var settings = {
method : "open" ,
extUrl : true ,
title : "New Window"
}
$ . extend ( settings , options ) ;
2013-07-30 08:14:28 +00:00
if ( ! settings . appid ) {
o . notify ( "Invalid AppID." , "imp" , 3 ) ;
return ;
}
2013-07-30 08:39:01 +00:00
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 ;
}
2013-07-30 08:14:28 +00:00
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 ;
}
}
2013-07-30 08:39:01 +00:00
var whtml = $ ( '<div id="app_frame_' + o . windowcounter + '" class="thmc2 app_frame" data-app="' + settings . appid + '" data-title="' + settings . title + '"><div class="app_frame_header"><div class="dtitle hh2 hp"><span class="thmtxth">' + settings . title + '</span></div><span class="icon-remove hh2 hp thmtxt"></span><span class="icon-minus hh2 hp thmtxt"></span></div><div id="holder_' + o . windowcounter + '" class="app_holder clear"><iframe src="' + appurl + '" frameborder="0" scrolling="auto"></iframe></div></div>' ) ;
2013-07-30 08:14:28 +00:00
$ ( o . contentHolder ) . append ( whtml ) ;
2013-07-30 08:39:01 +00:00
var parentwindow = $ ( o . contentHolder ) . find ( "#app_frame_" + o . windowcounter ) ;
2013-07-30 08:14:28 +00:00
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 } ) ;
2013-07-30 08:39:01 +00:00
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 ) ;
2013-07-30 08:14:28 +00:00
} )
2013-07-30 08:39:01 +00:00
2013-07-30 08:14:28 +00:00
}
2013-07-30 08:39:01 +00:00
this . appWindow . close = function ( win ) {
win . remove ( ) ;
}
this . appWindow . minimize = function ( win ) {
o . minimizeBarManager . minimize ( win )
}
2013-07-30 08:14:28 +00:00
if ( typeof callbackfn == "function" ) {
2013-07-30 08:39:01 +00:00
callbackfn . call ( this , parentwindow ) ;
2013-07-30 08:14:28 +00:00
}
2013-07-30 08:39:01 +00:00
return parentwindow ;
2013-07-30 08:14: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 ) ;
//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 = $ ( "<div class='desktop_toolpopup' style='height:" + settings . height + ";width:" + settings . width + "; left:" + leftpos + "px;'>" + settings . html + "</div>" ) ;
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" ;