/*
Copyright (c) 2007, Parosweb O.E. All rights reserved.
version: 2007-06-03
*/
////////////////////////////////////////////////////////////////////////////////
// Shortcuts ///////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
var $U = YAHOO.util;
var $D = YAHOO.util.Dom;
var $E = YAHOO.util.Event;


////////////////////////////////////////////////////////////////////////////////
// Details Object //////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
function SyRentals() {
	this.sId = 'rtls_table';
	this.sNavId = 'rtls_tf_nav';
	this.sHeadId = 'rtls_th_nav';
	this.sMaskId = 'sy_rtls_mask';
	this.oMask = false;
	this.sSearchFmId = 'sy_qsearch';
	this.sSearchBtId = 'bt_qsearch';
	this.sSearchTfId = 'tf_qsearch';
	this.sButtonBMId = 'bt_main_bm';
	this.bRentalsOnly = false;
	
	//<div id="sy_rtls_mask">
	//  <div></div>
	//  <p><img src="/interface/ic-indicator.gif" alt="" width="16" height="16" /><br />
	//  Loading ... Please wait.</p>
	//</div>
	this.sMask =  '<div></div>';
	this.sMask += '<p><img src="/interface/ic-indicator.gif" alt="" width="16" height="16" /><br />';
	this.sMask += 'Loading ... Please wait.</p>';
}
SyRentals.version = '2007-06-03';
SyRentals.ident   = 'SyRentals';

// init ////////////////////////////////////////////////////////////////////////
SyRentals.prototype.init = function() {
	var o = this;
	o.searchInit();
	if ( !o.bRentalsOnly ) {
		o.oRentals = $D.get( o.sId );
		o.oNav = $D.get( o.sNavId );
		o.oHead = $D.get( o.sHeadId );
		o.oButtonBM = $D.get( o.sButtonBMId );
		o.initMask();
		$E.on( o.oHead, 'click', o.navHandler, o, true );
		$E.on( o.oNav, 'click', o.navHandler, o, true );
		$E.removeListener( o.oButtonBM, 'click' );
		$E.on( o.oButtonBM, 'click', o.btbmHandler, o, true );
	}
}

// navHandler //////////////////////////////////////////////////////////////////
SyRentals.prototype.navHandler = function( e ) {
	var o = this;
	$E.stopEvent( e );
	var oE = $E.getTarget( e );
	while ( oE.id != 'rtls_tf_nav' && oE.id != 'rtls_th_nav' ) {
		if( oE.nodeName.toUpperCase()=='A' ) {
			// Footer
			if ( oE.id.indexOf('tf')==0 ) {
				if ( $D.hasClass( oE, 'na' ) ) { 
					break; 
				}
				var sUrl = oE.href.replace( /\.html/,'-ax.html' );
				o.showMask();
				var t1 = setTimeout( function() { o.showRentals( sUrl ); }, 500 );
			}
			// Header
			else if ( oE.id.indexOf('th')==0 ) {
				var sUrl = oE.href.replace( /\.html/,'-ax.html' );
				o.showMask();
				var t2 = setTimeout( function() { o.showRentals( sUrl ); }, 500 );
			}
			break;
		} else { 
			oE = oE.parentNode; 
		}
	}
}
// btbmHandler /////////////////////////////////////////////////////////////////
SyRentals.prototype.btbmHandler = function( e ) {
	var o = this;
	$E.stopEvent( e );
	var oE = $E.getTarget( e );
	var sUrl = oE.href.replace( /#target_nav/,'all-1-ax.html' );
	o.showMask();
	var t1 = setTimeout( function() { 
		o.showRentals( sUrl ); 
		o.oButtonBM.className = 'bm';
	}, 500 );
	//alert( sUrl );
}

// showRentals /////////////////////////////////////////////////////////////////
SyRentals.prototype.showRentals = function( sUrl, method ) {
	var o = this;
	method = method ? method : 'GET';
	$U.Connect.asyncRequest( method, sUrl, {
    success:o.onSuccess,
    failure:o.onFailure,
    scope:o
 	} );
}
SyRentals.prototype.onSuccess = function( oAjax ) {
	var o = this;
	o.oRentals.innerHTML = oAjax.responseText;
	o.hideMask();
}
SyRentals.prototype.onFailure = function( oAjax ) {
	var o = this;
	alert( 'failure' );
	o.hideMask();
}


// initMask ////////////////////////////////////////////////////////////////////
SyRentals.prototype.initMask = function() {
	var o = this;
	if ( !o.oMask ) {
		o.oMask = document.createElement( 'div' );
		o.oMask.id = o.sMaskId;
		o.oMask.innerHTML = o.sMask;
		$D.setStyle( o.oMask, 'display', 'none' );
		o.appendElement( $D.get( o.sId ), o.oMask );
	}
}
// showMask ////////////////////////////////////////////////////////////////////
SyRentals.prototype.showMask = function() {
	var o = this;
	$D.setStyle( o.oMask, 'display', 'block' );
	$E.removeListener( o.oHead, 'click' );
	$E.removeListener( o.oNav, 'click' );
}
// hideMask ////////////////////////////////////////////////////////////////////
SyRentals.prototype.hideMask = function() {
	var o = this;
	o.init();
	$D.setStyle( o.oMask, 'display', 'none' );
}


// searchHandler ///////////////////////////////////////////////////////////////
SyRentals.prototype.searchHandler = function( e ) {
	var o = this;
	$E.stopEvent( e );
	if ( !o.bRentalsOnly ) {
		var sUrl = o.oQsearch.action.replace( /\.html/,'-ax.html' );
		o.showMask();
		$U.Connect.setForm( o.oQsearch );
		var t2 = setTimeout( function() { 
			o.showRentals( sUrl, 'POST' );
			o.oButtonBM.className = 'bm sel_qsearch';
		}, 500 );
	} else {
		o.oQsearch.submit();
	}
}
SyRentals.prototype.searchInit = function() {
	var o = this;
	if (!o.oSearchBt) {
		var oButton = $D.get( o.sSearchBtId );
		$D.setStyle( oButton, 'display', 'none' );
		$D.setStyle( oButton, 'position', 'absolute' );
		o.oSearchBt = document.createElement( 'a' );
		o.oSearchBt.href = 'javascript:void(0);';
		o.oSearchBt.innerHTML = 'search';
		o.sSearchTf = $D.get( o.sSearchTfId );
		o.appendElement( o.sSearchTf, o.oSearchBt );
		o.oQsearch = $D.get( o.sSearchFmId );
		$E.on( o.oSearchBt, 'click', o.searchHandler, o, true );
		$E.on( o.oQsearch, 'submit', o.searchHandler, o, true );
	}
}


// append //////////////////////////////////////////////////////////////////////
SyRentals.prototype.appendElement = function( element, addElement ) {
    var father = element.parentNode;
    father.insertBefore( addElement, element.nextSibling );
}


