
var DialogLogin = function( idDialog, oQ, idForm, sUrl, sCommand,  arrFields ,sRefresh ) {
	var _idForm = idForm;
	var _ref = this;
	var _arrFields = arrFields;
	var _sUrl = sUrl;
	
	var handleSubmit = function() {
  	this.sendForm();
	};
	
	var handleCancel = function() {
	  this.cancel();
	};
	
	
	DialogLogin.superclass.constructor.call(this, idDialog,{ width : "360px",visible : false,
			buttons : [ { text:"Submit", handler:handleSubmit, isDefault:true },
			{ text:"Cancel", handler:handleCancel } ]
		} );
		
		
	var kl_close = new YAHOO.util.KeyListener(document, {keys:27 },
												  { fn: this.hide,
														scope: this,
														correctScope:true }, "keyup" ); 
	
	urlPageCaptcha1 = urlPageCaptcha.replace( /&/g, '&amp;');
	
	
	this.cfg.queueProperty("keylisteners", kl_close);
	if ( 'login' == idDialog ) {
		formDiv = '<div class="loginsignup">'+
				'<h3>Login</h3>'+
				'<form id="' + idForm + '" action="">'+
					'<table>'+
					'<tr>'+
							'<td class="text">Email:</td>'+
							'<td class="action"><input type="text" name="emaill" value="" /></td>'+
						'</tr>'+
						'<tr>'+
							'<td class="text">Password:</td>'+
							'<td class="action"><input type="password" name="passwordl" value="" /></td>'+
						'</tr>'+
						'<tr>'+
							'<td class="text"><button onclick="captchUpdate(\''+urlPageCaptcha1+'\')">I could not see code</button></td>'+
							'<td class="action"><img align="center" src="'+urlPageCaptcha1+'" alt="Captcha" id="captcha1"/></td>'+
						'</tr>'+
						'<tr>'+
							'<td class="text">Image Code</td>'+
							'<td class="action"><input type="text" name="captcha" value="" /></td>'+
						'</tr>'+
						'<tr>'+
							'<td class="text"></td>'+
							'<td class="action"><label for="forRememberme">Remember me&#160;</label><input class="checkbox" type="checkbox" name="remembermel" checked="checked" id="forRememberme" value="yes" /></td>'+
						'</tr>'+
					'</table>'+
				'</form>'+
			'<div class="abreastButton">Do not have an account? <a href="#" onclick="return false;" id="showsignup2" class="end">Signup here.</a></div>'+
			'<div class="abreastButton"><br/><a href="http://blingeasy.com/repair-password" class="end">Lost your password?</a></div>'+
			'<div class="abreastButton"><br/>Problems logging in? <a href="http://blingeasy.com/mobile-login-signup" class="end">Click Here</a></div>'+
			'</div>';
		}

	if ( 'signup' == idDialog ){ 
		formDiv = '<div class="loginsignup">'+
				'<h3>Signup</h3>'+
				'<form id="' + idForm + '" action="">'+
					'<table>'+
						'<tr>'+
							'<td class="text">Name to Display:</td>'+
							'<td class="action"><input type="text" name="nameDisplays" value="" /></td>'+
						'</tr>'+
						'<tr>'+
							'<td class="text">Email:</td>'+
							'<td class="action"><input type="text" name="emails" value="" /></td>'+
						'</tr>'+
						'<tr>'+
							'<td class="text">Password (6 chars):</td>'+
							'<td class="action"><input type="password" name="passwords" value="" /></td>'+
						'</tr>'+
						'<tr>'+
							'<td class="text">Confirm Password:</td>'+
							'<td class="action"><input type="password" name="passwordConfirms" value="" /></td>'+
						'</tr>'+
						'<tr>'+
							'<td class="text">Gender:</td>'+
							'<td class="action"><input id="g_m" type="radio" name="genders" value="male" style="width: 1.5em; margin-right: 0.5em;"/><label for="g_m" style="margin-right: 1em;">male</label><input id="g_f" type="radio" name="genders" value="female" style="width: 1.5em; margin-right: 0.5em;" /><label for="g_f">female</label></td>'+
						'</tr>'+
						'<tr>'+
							'<td class="text"><button onclick="captchUpdate(\''+urlPageCaptcha1+'\')">I could not see code</button></td>'+
							'<td class="action"><img align="center" src="'+urlPageCaptcha1+'" alt="Captcha" id="captcha2"/></td>'+
						'</tr>'+
						'<tr>'+
							'<td class="text">Image Code</td>'+
							'<td class="action"><input type="text" name="captcha" value="" /></td>'+
						'</tr>'+
						'<tr>'+
							'<td class="text"></td>'+
							'<td class="action"><label for="forRemembermes">Remember me&#160;</label><input class="checkbox" type="checkbox" name="remembermes" checked="checked" id="forRemembermes" value="yes" /></td>'+
						'</tr>'+
					'</table>'+
				'</form>'+
			'<div class="abreastButton"><a href="#" onclick="return false;" id="showlogin2" class="end">Already have an account?</a></div>'+
			'<div class="abreastButton"><br/>Problems logging in? <a href="http://blingeasy.com/mobile-login-signup" class="end">Click Here</a></div>'+
			'</div>';
		}
	this.setBody( formDiv );
	this.render( document.body );
	
	this.show = function( ) {
  	hideBlock('imager');
  	_ref.cfg.setProperty("fixedcenter" , true);
  	//YAHOO.util.Dom.setStyle( idDialog+'_c', 'margin-top', '300px'); 
  	//YAHOO.util.Dom.setStyle(idDialog+'_c', 'margin-left', (YAHOO.util.Dom.getViewportWidth()/2 - 180) + 'px'); 
    DialogLogin.superclass.show.call( _ref );
	}
	this.hide = function( ) {
		showBlock('imager');
    DialogLogin.superclass.hide.call( _ref );
	}
	
	var oFR = new FormValidatorMessageRepresentation( document.getElementById( idForm ), oQ, 'errorValid' );
	
	
	this.sendForm = function() {
	  var formObject = document.getElementById( _idForm );
	  _ref.Success = function(o) {
	  	urlPageCaptcha2 = urlPageCaptcha;
	  	captchUpdate(urlPageCaptcha2);
	  	var jsonString = o.responseText;
	 		try {
	  		var obj = YAHOO.lang.JSON.parse( jsonString );
		  	if ( obj.type == 'complex' ){
					var status = 'error';
					if ( obj.status == 'error' ) { 
						status = Message.STATUS_ERR;
					}
					if ( obj.status == 'ok' ){
						status = Message.STATUS_OK;
						if ( 'yes' == sRefresh ){
							window.location.reload( true );
						}else{
							var MenuHeader = document.getElementById( 'MenuHeader' );
							if( MenuHeader ) {
								var innerMenuHeader = '';
	              var class1 = "";
								for( var i = 0; i < obj.MenuHeader.length; ++i ) {
									class1 = "";
									if( i == obj.MenuHeader.length - 1 ) {
										class1 = "end";
									}
									innerMenuHeader += ( '<a href="'+ obj.MenuHeader[i].url +'" class="'+class1+'">' + obj.MenuHeader[i].nameDisplay + '</a>' );
								}
								MenuHeader.innerHTML = innerMenuHeader.replace( /&/g, '&amp;');
							}
							var MenuUser = document.getElementById( 'MenuUser' );
							if( MenuUser ) {
								var innerMenuUser = '';
								for( var j = 0; j < obj.MenuUser.length; ++j ) {
									var class1 = '';
									if ( j == obj.MenuUser.length-1 ){
										class1 = "end";
									}
								innerMenuUser += '<a href="'+ obj.MenuUser[j].url +'" class="'+class1+'">' + obj.MenuUser[j].nameDisplay + '</a>';
								}
								MenuUser.innerHTML = innerMenuUser.replace( /&/g, '&amp;');
							} 
							var MenuMain = document.getElementById( 'MenuMain' );
							if( MenuMain ) {
								var innerMenuMain = '';
								for( var k = 0; k < obj.MenuMain.length; ++k ) {
									var class1 = '';
									if ( k == obj.MenuMain.length-1 ){
										class1 = "end";
									}
									innerMenuMain += '<a href="'+ obj.MenuMain[k].url +'" class="'+class1+'">' + obj.MenuMain[k].nameDisplay + '</a>';
								}
								MenuMain.innerHTML = "Hi, "+obj.userName+ "!" + innerMenuMain.replace( /&/g, '&amp;');
							}
							hideInline( 'login_false' );
							hideInline( 'signup_false' );
							showInline( 'login_true' );
						}	
						var oButtonTD = document.getElementById( 'b_setTitleDescription' );  
						if( oButtonTD ) {
							oButtonTitleDescription.set('disabled', false);
						}
						
						_ref.hide();
					}
					oQ.add( new Message( status, obj.textMessage ) );
					_ref.cfg.setProperty("context", [ 'message', "tl", "bl"]);
					_ref.cfg.setProperty("fixedcenter" , false);
				}
	  	}
	  	catch( e ) {
	  		oQ.add( new Message( Message.STATUS_ERR, "Error while executing command: " + e + ';json: ' + jsonString ) );
	  	}
	    return true;
	  }
	
	  this.Failure = function(o) {
	    alert( 'Connection fail.' );
	  }
	
	  var response =
	  {
	    success: _ref.Success,
	    failure: _ref.Failure
	  }
	  
		var check = false;
	  try {
	  	aV = new FormValidator( _idForm, _arrFields );
	  	var check = aV.checkIsValid();
			if( check ) {
				var _stUrl =  _sUrl.replace( /&amp;/g, "&" );
				var ch = '&';
				if( -1 == _stUrl.indexOf( '?' ) ) {
					ch = '?';
				}
				_stUrl += ch + 'command=' + sCommand;
//				alert(_stUrl)
				YAHOO.util.Connect.setForm( formObject, false );
				var cObj = YAHOO.util.Connect.asyncRequest( 'GET', _stUrl, response );
			}
		}
		catch( e ) {
			 oQ.add( e );
			_ref.cfg.setProperty("context", [ 'message', "tl", "bl"]);
			_ref.cfg.setProperty("fixedcenter" , false);
		}	
	} 
   
}
YAHOO.lang.extend( DialogLogin, YAHOO.widget.Dialog );
