var featureList=[ "ajax2", "dialog", "calendar" ];

function PositionFooter(){
	 var flt = OAT.Dom.getLT( $( 'footer' ));
	 var fwh = OAT.Dom.getWH( $( 'footer' ));
	 var tclt = OAT.Dom.getLT( $( 'spacer' ));
	 var tcwh = OAT.Dom.getWH( $( 'spacer' ));
	 var tcBottom = tclt[1] + tcwh[1];
	 var vp = OAT.Dom.getViewport();
	 
	 if( tcBottom > vp[1] ){
		   OAT.Dom.moveBy( 'footer', 0, tcBottom - flt[1] + fwh[1] );
		   return;
		   }
	
	if( flt[ 1 ] != ( vp[ 1 ] - fwh[1] ) ){
		OAT.Dom.moveBy( 'footer', 0, vp[1] - ( fwh[1] * 2 ) - flt[1] );
		}
		
	}

function LoadContent( optObj ){	
		
	var options = {};
	
	for (var p in optObj) { options[p] = optObj[p]; }
	
	var ajxoptions = { 
		type: OAT.AJAX.TYPE_TEXT,
		onerror:function( request ){ alert( "request returned " + request.getStatus() ); }
			}
			
	function afterLoad( request ){ 
		var content = request;
		var bodstart = 0;
		if( request.search( '<body>' )  >= 0 ){ 
			bodstart = request.search( '<body>' ) + 6;
			content = request.substr( bodstart, request.search( '</body>' ) - bodstart );
			}
		options.el.innerHTML = content;
	}
		
	OAT.AJAX.GET( options.url, false, afterLoad, ajxoptions );
}

function InitSetisReady(){
	// pop pulldown from XML file
	//SDForm.LoadSelectFromXml( 'delivervia.xml', document.forms[ 'Delivery' ].elements[ 'Via' ] );
	//SDForm.LoadSelectFromXml( 'duetimes.xml', document.forms[ 'Time' ].elements[ 'TimeDue' ] );
	
	//pop pulldown from xml embedded in init set.
	SDForm.popSelectElement( SDForm.Settings.getElementsByTagName( 'DeliverVia'  )[0], document.forms[ 'Delivery' ].elements[ 'Via' ] ); 	
	SDForm.popSelectElement( SDForm.Settings.getElementsByTagName( 'DueTimes'  )[0], document.forms[ 'Due' ].elements[ 'TimeDue' ] );
	SDForm.popSelectElement( SDForm.Settings.getElementsByTagName( 'Sizes'  )[0], document.forms[ 'Production' ].elements[ 'Size' ] );
	SDForm.popSelectElement( SDForm.Settings.getElementsByTagName( 'Bindings'  )[0], document.forms[ 'Production' ].elements[ 'Binding' ] );
	SDForm.popSelectElement( SDForm.Settings.getElementsByTagName( 'Sources'  )[0], document.forms[ 'Originals' ].elements[ 'Source' ] );
	
	setTimeout( HandleSourceSelection, 1000 );
	
	
}

function HandleSourceSelection(){
	
	if( $('Source').value.search( 'attached' ) >= 0 ){
		var Up = SDForm.Settings.getElementsByTagName( 'Upload' )[0];
		Up.setAttribute( 'RequireUploads', "Yes" );
		OAT.Dom.show( 'attached' ); 
		if( UC.client.insert ){ SDForm.ClearActivity(); }
		SDForm.LogActivity( "Loading Upload Client. <br><b>May take a while the first time.</b>" );
		UC.InsertComplete = function(){ SDForm.LogActivity( "Upload client loaded!." );
										 setTimeout( LoadDlog.hide, 2 * 1000 );	
										}
		UC.Insert();
		}
	else{
		var Up = SDForm.Settings.getElementsByTagName( 'Upload' )[0];
		Up.setAttribute( 'RequireUploads', "No" );
		OAT.Dom.hide( 'attached' );
		UC.Remove();
		if( LoadDlog.isVisible ){ LoadDlog.hide(); }
		}
					
}

function init(){
	
	// this form uses the OAT framework
	OAT.Preferences.showAjax = false;
	OAT.Preferences.imagePath = "/_sd/images/oat/";	
	
	// Check to see if the user is on FireFox Mac
	//if( OAT.Browser.isMac && OAT.Browser.isGecko ){
	//	var NoMacFF = new OAT.Dialog(  'Attention....' , 'MacFF', {modal:1, buttons:0, width:OAT.Dom.getWH( 'MacFF' )[0] + 20});
	//	NoMacFF.show();
	//	return;
	//	}
	
	// if the user is using Opera hide the footer
	if( OAT.Browser.isOpera ){ OAT.Dom.hide( 'footer' ); }
	
	// Allocate a dialog to show loading process
	LoadDlog = new OAT.Dialog(  'Progress....' , 'Activity', {modal:1, buttons:0,width:OAT.Dom.getWH( 'Activity' )[0] + 20});
	//LoadDlog.show(); // display it
	
	// Allocate an order complete dialog
	OrdComplete = new OAT.Dialog(  'Order Status....' , 'OrderComplete', {modal:1, buttons:0, width:OAT.Dom.getWH( 'OrderComplete' )[0] + 20});
	if( SDForm.GetCookieWCL() == 'l' ){ OAT.Dom.show( 'OrderClear' ); }
	// the footer needs to be re-positioned when the window is resized
	//OAT.Event.attach( window, 'resize', PositionFooter );
		
	// use OAT's calander function for date picking in datedue filed
	tDate = new Date();	
	var c = new OAT.Calendar();
	c.weekStartIndex = 6;
	window.cal = c;
	var openRef = function(event) {
      var callback = function(date) {
          $("DateDue").value = date[1]+"/"+date[2]+"/"+date[0];
      }
      var coords = OAT.Dom.position("DateDue");
      var y = OAT.Browser.isIE ? tDate.getYear() : tDate.getYear() + 1900;
      c.show(coords[0],coords[1]+30,callback, [ y, tDate.getMonth() + 1 , tDate.getDate() ] );
	}
	OAT.Event.attach("DateDue","click",openRef); 
  
  // insert the Masthead
	LoadContent( { el: $( 'masthead' ), url: "/_sd/Custom/Masthead.html" } );
	
  // insert the footer
	//LoadContent( { el: $( 'footer' ), url: "/_sd/Custom/Footer.html" } );
	
  // Safari needs this call
  // PositionFooter();
	
  // initialize the form library
	SDForm.init();
	
   // apply events based on the source 
	OAT.Event.attach("Source","change", HandleSourceSelection );
					
	
	// load the departments
	//SDForm.popSelectElement( SDForm.Settings.getElementsByTagName( 'TimeDue'  )[0], document.forms[ 'Time' ].elements[ 'TimeDue' ] ); 	
	
	//SDForm.LoadSelectFromXml( 'delivervia.xml', document.forms[ 'Delivery' ].elements[ 'Via' ] );
	//SDForm.LoadSelectFromXml( 'duetimes.xml', document.forms[ 'Time' ].elements[ 'TimeDue' ] );
	
	// populate the list of delivery methods from xml loaded in the initset
	//SDForm.popSelectElement( SDForm.Settings.getElementsByTagName( 'DeliverVia'  )[0], document.forms[ 'Delivery' ].elements[ 'Via' ] ); 	
	//SDForm.popSelectElement( SDForm.Settings.getElementsByTagName( 'DueTimes'  )[0], document.forms[ 'Time' ].elements[ 'TimeDue' ] );
			
	//set the document defaults from last
	//SDForm.SetDocDefaults();
}