web/static/js/jquery.DOMWindow.js
author ymh <ymh.work@gmail.com>
Fri, 11 Jun 2010 00:25:17 +0200
changeset 29 1f2c13ece5e9
parent 0 ecdfc63274bf
permissions -rw-r--r--
Added tag V00.05 for changeset 8ba2fbb792ff
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
(function($){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
	
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
	//closeDOMWindow
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
	$.fn.closeDOMWindow = function(settings){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
		
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
		if(!settings){settings={};}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
		
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
		var run = function(passingThis){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
			
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
			if(settings.anchoredClassName){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
				var $anchorClassName = $('.'+settings.anchoredClassName);
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
				$anchorClassName.fadeOut('fast',function(){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
					if($.fn.draggable){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
						$anchorClassName.draggable('destory').trigger("unload").remove();	
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
					}else{
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
						$anchorClassName.trigger("unload").remove();
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
					}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
				});
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
				if(settings.functionCallOnClose){settings.functionCallAfterClose();}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
			}else{
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
				var $DOMWindowOverlay = $('#DOMWindowOverlay');
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
				var $DOMWindow = $('#DOMWindow');
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
				$DOMWindowOverlay.fadeOut('fast',function(){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
					$DOMWindowOverlay.trigger('unload').unbind().remove();																	  
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
				});
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
				$DOMWindow.fadeOut('fast',function(){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
					if($.fn.draggable){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
						$DOMWindow.draggable("destroy").trigger("unload").remove();
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
					}else{
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
						$DOMWindow.trigger("unload").remove();
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
					}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
				});
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
			
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
				$(window).unbind('scroll.DOMWindow');
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
				$(window).unbind('resize.DOMWindow');
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
				
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
				if($.fn.openDOMWindow.isIE6){$('#DOMWindowIE6FixIframe').remove();}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
				if(settings.functionCallOnClose){settings.functionCallAfterClose();}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
			}	
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
		};
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
		
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
		if(settings.eventType){//if used with $().
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
			return this.each(function(index){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
				$(this).bind(settings.eventType, function(){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
					run(this);
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
					return false;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
				});
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
			});
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
		}else{//else called as $.function
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
			run();
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
		}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
		
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
	};
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
	
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
	//allow for public call, pass settings
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
	$.closeDOMWindow = function(s){$.fn.closeDOMWindow(s);};
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
	
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
	//openDOMWindow
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
	$.fn.openDOMWindow = function(instanceSettings){	
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
		
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
		var shortcut =  $.fn.openDOMWindow;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
	
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
		//default settings combined with callerSettings////////////////////////////////////////////////////////////////////////
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
		
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
		shortcut.defaultsSettings = {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
			anchoredClassName:'',
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
			anchoredSelector:'',
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
			borderColor:'#ccc',
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
			borderSize:'4',
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
			draggable:0,
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
			eventType:null, //click, blur, change, dblclick, error, focus, load, mousedown, mouseout, mouseup etc...
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
			fixedWindowY:100,
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
			functionCallOnOpen:null,
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
			functionCallOnClose:null,
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
			height:500,
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
			loader:0,
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
			loaderHeight:0,
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
			loaderImagePath:'',
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
			loaderWidth:0,
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
			modal:0,
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
			overlay:1,
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
			overlayColor:'#000',
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
			overlayOpacity:'85',
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
			positionLeft:0,
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
			positionTop:0,
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
			positionType:'centered', // centered, anchored, absolute, fixed
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
			width:500, 
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
			windowBGColor:'#fff',
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    89
			windowBGImage:null, // http path
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    90
			windowHTTPType:'get',
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
			windowPadding:10,
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
			windowSource:'inline', //inline, ajax, iframe
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
			windowSourceID:'',
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    94
			windowSourceURL:'',
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    95
			windowSourceAttrURL:'href'
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    96
		};
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    97
		
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    98
		var settings = $.extend({}, $.fn.openDOMWindow.defaultsSettings , instanceSettings || {});
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
    99
		
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   100
		//Public functions
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   101
		
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   102
		shortcut.viewPortHeight = function(){ return self.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;};
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   103
		shortcut.viewPortWidth = function(){ return self.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;};
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   104
		shortcut.scrollOffsetHeight = function(){ return self.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;};
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   105
		shortcut.scrollOffsetWidth = function(){ return self.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft;};
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   106
		shortcut.isIE6 = typeof document.body.style.maxHeight === "undefined";
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   107
		
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   108
		//Private Functions/////////////////////////////////////////////////////////////////////////////////////////////////////////
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   109
		
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   110
		var sizeOverlay = function(){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   111
			var $DOMWindowOverlay = $('#DOMWindowOverlay');
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   112
			if(shortcut.isIE6){//if IE 6
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   113
				var overlayViewportHeight = document.documentElement.offsetHeight + document.documentElement.scrollTop - 4;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   114
				var overlayViewportWidth = document.documentElement.offsetWidth - 21;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   115
				$DOMWindowOverlay.css({'height':overlayViewportHeight +'px','width':overlayViewportWidth+'px'});
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   116
			}else{//else Firefox, safari, opera, IE 7+
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   117
				$DOMWindowOverlay.css({'height':'100%','width':'100%','position':'fixed'});
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   118
			}	
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   119
		};
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   120
		
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   121
		var sizeIE6Iframe = function(){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   122
			var overlayViewportHeight = document.documentElement.offsetHeight + document.documentElement.scrollTop - 4;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   123
			var overlayViewportWidth = document.documentElement.offsetWidth - 21;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   124
			$('#DOMWindowIE6FixIframe').css({'height':overlayViewportHeight +'px','width':overlayViewportWidth+'px'});
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   125
		};
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   126
		
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   127
		var centerDOMWindow = function() {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   128
			var $DOMWindow = $('#DOMWindow');
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   129
			if(settings.height + 50 > shortcut.viewPortHeight()){//added 50 to be safe
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   130
				$DOMWindow.css('left',Math.round(shortcut.viewPortWidth()/2) + shortcut.scrollOffsetWidth() - Math.round(($DOMWindow.outerWidth())/2));
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   131
			}else{
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   132
				$DOMWindow.css('left',Math.round(shortcut.viewPortWidth()/2) + shortcut.scrollOffsetWidth() - Math.round(($DOMWindow.outerWidth())/2));
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   133
				$DOMWindow.css('top',Math.round(shortcut.viewPortHeight()/2) + shortcut.scrollOffsetHeight() - Math.round(($DOMWindow.outerHeight())/2));
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   134
			}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   135
		};
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   136
		
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   137
		var centerLoader = function() {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   138
			var $DOMWindowLoader = $('#DOMWindowLoader');
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   139
			if(shortcut.isIE6){//if IE 6
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   140
				$DOMWindowLoader.css({'left':Math.round(shortcut.viewPortWidth()/2) + shortcut.scrollOffsetWidth() - Math.round(($DOMWindowLoader.innerWidth())/2),'position':'absolute'});
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   141
				$DOMWindowLoader.css({'top':Math.round(shortcut.viewPortHeight()/2) + shortcut.scrollOffsetHeight() - Math.round(($DOMWindowLoader.innerHeight())/2),'position':'absolute'});
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   142
			}else{
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   143
				$DOMWindowLoader.css({'left':'50%','top':'50%','position':'fixed'});
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   144
			}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   145
			
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   146
		};
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   147
		
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   148
		var fixedDOMWindow = function(){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   149
			var $DOMWindow = $('#DOMWindow');
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   150
			$DOMWindow.css('left', settings.positionLeft + shortcut.scrollOffsetWidth());
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   151
			$DOMWindow.css('top', + settings.positionTop + shortcut.scrollOffsetHeight());
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   152
		};
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   153
		
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   154
		var showDOMWindow = function(instance){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   155
			if(arguments[0]){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   156
				$('.'+instance+' #DOMWindowLoader').remove();
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   157
				$('.'+instance+' #DOMWindowContent').fadeIn('fast',function(){if(settings.functionCallOnOpen){settings.functionCallOnOpen();}});
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   158
				$('.'+instance+ '.closeDOMWindow').click(function(){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   159
					$.closeDOMWindow();	
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   160
					return false;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   161
				});
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   162
			}else{
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   163
				$('#DOMWindowLoader').remove();
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   164
				$('#DOMWindow').fadeIn('fast',function(){if(settings.functionCallOnOpen){settings.functionCallOnOpen();}});
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   165
				$('#DOMWindow .closeDOMWindow').click(function(){						
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   166
					$.closeDOMWindow();
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   167
					return false;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   168
				});
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   169
			}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   170
			
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   171
		};
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   172
		
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   173
		var urlQueryToObject = function(s){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   174
			  var query = {};
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   175
			  s.replace(/b([^&=]*)=([^&=]*)b/g, function (m, a, d) {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   176
				if (typeof query[a] != 'undefined') {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   177
				  query[a] += ',' + d;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   178
				} else {
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   179
				  query[a] = d;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   180
				}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   181
			  });
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   182
			  return query;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   183
		};
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   184
			
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   185
		//Run Routine ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   186
		var run = function(passingThis){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   187
			
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   188
			//get values from element clicked, or assume its passed as an option
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   189
			settings.windowSourceID = $(passingThis).attr('href') || settings.windowSourceID;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   190
			settings.windowSourceURL = $(passingThis).attr(settings.windowSourceAttrURL) || settings.windowSourceURL;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   191
			settings.windowBGImage = settings.windowBGImage ? 'background-image:url('+settings.windowBGImage+')' : '';
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   192
			var urlOnly, urlQueryObject;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   193
			
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   194
			if(settings.positionType == 'anchored'){//anchored DOM window
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   195
				
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   196
				var anchoredPositions = $(settings.anchoredSelector).position();
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   197
				var anchoredPositionX = anchoredPositions.left + settings.positionLeft;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   198
				var anchoredPositionY = anchoredPositions.top + settings.positionTop;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   199
				
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   200
				$('body').append('<div class="'+settings.anchoredClassName+'" style="'+settings.windowBGImage+';background-repeat:no-repeat;padding:'+settings.windowPadding+'px;overflow:auto;position:absolute;top:'+anchoredPositionY+'px;left:'+anchoredPositionX+'px;height:'+settings.height+'px;width:'+settings.width+'px;background-color:'+settings.windowBGColor+';border:'+settings.borderSize+'px solid '+settings.borderColor+';z-index:10001"><div id="DOMWindowContent" style="display:none"></div></div>');		
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   201
				//loader
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   202
				if(settings.loader && settings.loaderImagePath !== ''){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   203
					$('.'+settings.anchoredClassName).append('<div id="DOMWindowLoader" style="width:'+settings.loaderWidth+'px;height:'+settings.loaderHeight+'px;"><img src="'+settings.loaderImagePath+'" /></div>');
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   204
					
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   205
				}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   206
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   207
				if($.fn.draggable){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   208
					if(settings.draggable){$('.' + settings.anchoredClassName).draggable({cursor:'move'});}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   209
				}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   210
				
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   211
				switch(settings.windowSource){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   212
					case 'inline'://////////////////////////////// inline //////////////////////////////////////////
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   213
						$('.' + settings.anchoredClassName+" #DOMWindowContent").append($(settings.windowSourceID).children());
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   214
						$('.' + settings.anchoredClassName).unload(function(){// move elements back when you're finished
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   215
							$('.' + settings.windowSourceID).append( $('.' + settings.anchoredClassName+" #DOMWindowContent").children());				
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   216
						});
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   217
						showDOMWindow(settings.anchoredClassName);
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   218
					break;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   219
					case 'iframe'://////////////////////////////// iframe //////////////////////////////////////////
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   220
						$('.' + settings.anchoredClassName+" #DOMWindowContent").append('<iframe frameborder="0" hspace="0" wspace="0" src="'+settings.windowSourceURL+'" name="DOMWindowIframe'+Math.round(Math.random()*1000)+'" style="width:100%;height:100%;border:none;background-color:#fff;" class="'+settings.anchoredClassName+'Iframe" ></iframe>');
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   221
						$('.'+settings.anchoredClassName+'Iframe').load(showDOMWindow(settings.anchoredClassName));
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   222
					break;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   223
					case 'ajax'://////////////////////////////// ajax //////////////////////////////////////////	
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   224
						if(settings.windowHTTPType == 'post'){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   225
							
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   226
							if(settings.windowSourceURL.indexOf("?") !== -1){//has a query string
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   227
								urlOnly = settings.windowSourceURL.substr(0, settings.windowSourceURL.indexOf("?"));
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   228
								urlQueryObject = urlQueryToObject(settings.windowSourceURL);
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   229
							}else{
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   230
								urlOnly = settings.windowSourceURL;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   231
								urlQueryObject = {};
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   232
							}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   233
							$('.' + settings.anchoredClassName+" #DOMWindowContent").load(urlOnly,urlQueryObject,function(){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   234
								showDOMWindow(settings.anchoredClassName);
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   235
							});
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   236
						}else{
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   237
							if(settings.windowSourceURL.indexOf("?") == -1){ //no query string, so add one
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   238
								settings.windowSourceURL += '?';
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   239
							}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   240
							$('.' + settings.anchoredClassName+" #DOMWindowContent").load(
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   241
								settings.windowSourceURL + '&random=' + (new Date().getTime()),function(){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   242
								showDOMWindow(settings.anchoredClassName);
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   243
							});
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   244
						}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   245
					break;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   246
				}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   247
				
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   248
			}else{//centered, fixed, absolute DOM window
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   249
				
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   250
				//overlay & modal
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   251
				if(settings.overlay){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   252
					$('body').append('<div id="DOMWindowOverlay" style="z-index:10000;display:none;position:absolute;top:0;left:0;background-color:'+settings.overlayColor+';filter:alpha(opacity='+settings.overlayOpacity+');-moz-opacity: 0.'+settings.overlayOpacity+';opacity: 0.'+settings.overlayOpacity+';"></div>');
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   253
					if(shortcut.isIE6){//if IE 6
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   254
						$('body').append('<iframe id="DOMWindowIE6FixIframe"  src="blank.html"  style="width:100%;height:100%;z-index:9999;position:absolute;top:0;left:0;filter:alpha(opacity=0);"></iframe>');
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   255
						sizeIE6Iframe();
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   256
					}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   257
					sizeOverlay();
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   258
					var $DOMWindowOverlay = $('#DOMWindowOverlay');
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   259
					$DOMWindowOverlay.fadeIn('fast');
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   260
					if(!settings.modal){$DOMWindowOverlay.click(function(){$.closeDOMWindow();});}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   261
				}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   262
				
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   263
				//loader
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   264
				if(settings.loader && settings.loaderImagePath !== ''){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   265
					$('body').append('<div id="DOMWindowLoader" style="z-index:10002;width:'+settings.loaderWidth+'px;height:'+settings.loaderHeight+'px;"><img src="'+settings.loaderImagePath+'" /></div>');
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   266
					centerLoader();
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   267
				}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   268
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   269
				//add DOMwindow
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   270
				$('body').append('<div id="DOMWindow" style="background-repeat:no-repeat;'+settings.windowBGImage+';overflow:auto;padding:'+settings.windowPadding+'px;display:none;height:'+settings.height+'px;width:'+settings.width+'px;background-color:'+settings.windowBGColor+';border:'+settings.borderSize+'px solid '+settings.borderColor+'; position:absolute;z-index:10001"></div>');
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   271
				
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   272
				var $DOMWindow = $('#DOMWindow');
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   273
				//centered, absolute, or fixed
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   274
				switch(settings.positionType){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   275
					case 'centered':
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   276
						centerDOMWindow();
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   277
						if(settings.height + 50 > shortcut.viewPortHeight()){//added 50 to be safe
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   278
							$DOMWindow.css('top', (settings.fixedWindowY + shortcut.scrollOffsetHeight()) + 'px');
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   279
						}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   280
					break;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   281
					case 'absolute':
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   282
						$DOMWindow.css({'top':(settings.positionTop+shortcut.scrollOffsetHeight())+'px','left':(settings.positionLeft+shortcut.scrollOffsetWidth())+'px'});
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   283
						if($.fn.draggable){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   284
							if(settings.draggable){$DOMWindow.draggable({cursor:'move'});}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   285
						}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   286
					break;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   287
					case 'fixed':
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   288
						fixedDOMWindow();
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   289
					break;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   290
					case 'anchoredSingleWindow':
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   291
						var anchoredPositions = $(settings.anchoredSelector).position();
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   292
						var anchoredPositionX = anchoredPositions.left + settings.positionLeft;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   293
						var anchoredPositionY = anchoredPositions.top + settings.positionTop;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   294
						$DOMWindow.css({'top':anchoredPositionY + 'px','left':anchoredPositionX+'px'});
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   295
								
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   296
					break;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   297
				}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   298
				
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   299
				$(window).bind('scroll.DOMWindow',function(){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   300
					if(settings.overlay){sizeOverlay();}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   301
					if(shortcut.isIE6){sizeIE6Iframe();}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   302
					if(settings.positionType == 'centered'){centerDOMWindow();}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   303
					if(settings.positionType == 'fixed'){fixedDOMWindow();}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   304
				});
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   305
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   306
				$(window).bind('resize.DOMWindow',function(){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   307
					if(shortcut.isIE6){sizeIE6Iframe();}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   308
					if(settings.overlay){sizeOverlay();}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   309
					if(settings.positionType == 'centered'){centerDOMWindow();}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   310
				});
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   311
				
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   312
				switch(settings.windowSource){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   313
					case 'inline'://////////////////////////////// inline //////////////////////////////////////////
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   314
						$DOMWindow.append($(settings.windowSourceID).children());
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   315
						$DOMWindow.unload(function(){// move elements back when you're finished
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   316
							$(settings.windowSourceID).append($DOMWindow.children());				
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   317
						});
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   318
						showDOMWindow();
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   319
					break;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   320
					case 'iframe'://////////////////////////////// iframe //////////////////////////////////////////
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   321
						$DOMWindow.append('<iframe frameborder="0" hspace="0" wspace="0" src="'+settings.windowSourceURL+'" name="DOMWindowIframe'+Math.round(Math.random()*1000)+'" style="width:100%;height:100%;border:none;background-color:#fff;" id="DOMWindowIframe" ></iframe>');
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   322
						$('#DOMWindowIframe').load(showDOMWindow());
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   323
					break;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   324
					case 'ajax'://////////////////////////////// ajax //////////////////////////////////////////
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   325
						if(settings.windowHTTPType == 'post'){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   326
							
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   327
							if(settings.windowSourceURL.indexOf("?") !== -1){//has a query string
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   328
								urlOnly = settings.windowSourceURL.substr(0, settings.windowSourceURL.indexOf("?"));
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   329
								urlQueryObject = urlQueryToObject(settings.windowSourceURL);
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   330
							}else{
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   331
								urlOnly = settings.windowSourceURL;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   332
								urlQueryObject = {};
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   333
							}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   334
							$DOMWindow.load(urlOnly,urlQueryObject,function(){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   335
								showDOMWindow();
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   336
							});
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   337
						}else{
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   338
							if(settings.windowSourceURL.indexOf("?") == -1){ //no query string, so add one
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   339
								settings.windowSourceURL += '?';
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   340
							}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   341
							$DOMWindow.load(
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   342
								settings.windowSourceURL + '&random=' + (new Date().getTime()),function(){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   343
								showDOMWindow();
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   344
							});
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   345
						}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   346
					break;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   347
				}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   348
				
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   349
			}//end if anchored, or absolute, fixed, centered
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   350
			
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   351
		};//end run()
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   352
		
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   353
		if(settings.eventType){//if used with $().
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   354
			return this.each(function(index){				  
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   355
				$(this).bind(settings.eventType,function(){
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   356
					run(this);
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   357
					return false;
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   358
				});
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   359
			});	
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   360
		}else{//else called as $.function
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   361
			run();
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   362
		}
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   363
		
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   364
	};//end function openDOMWindow
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   365
	
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   366
	//allow for public call, pass settings
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   367
	$.openDOMWindow = function(s){$.fn.openDOMWindow(s);};
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   368
	
ecdfc63274bf first import
ymh <ymh.work@gmail.com>
parents:
diff changeset
   369
})(jQuery);