	var rightImgStr = '<img src= "images/homePage/right.gif" alt="" />';
	var wrongImgStr = '<img src= "images/homePage/wrong.gif" alt="" />';
	var PERSONALPLAN = 0;
	var BASICPLAN = 1;
	var FREEPLAN = 3;
	var trsNot4Free = [];
	function start(){
		SignUpWindow.init();
		SignUpWindow.disableButton();
		MessageWindow.init();
		if($("signInTable")!=null)
			changeFormStyle($("signInTable"), true, false, false, false, false);
		if($("checkSiteTable")!=null)
			changeFormStyle($("checkSiteTable"), true, false, false, false, false);
	      if($("signUpWindowBody")!=null)
		changeFormStyle($("signUpWindowBody"), true, true, false, true, false,false);
	 	$("email").focus();
	 	$("signInButton").innerHTML = '<img src="images/homePage/login.gif" onclick="login();"/>';
		$("plan0signup").innerHTML = '<img src="images/homePage/signup_gr.png" class="signup" name="signup" plan="0" />';
		$("plan1signup").innerHTML = '<img src="images/homePage/signup_or.png" class="signup" name="signup" plan="1" />';
		$("plan2signup").innerHTML = '<img src="images/homePage/signup_red.png" class="signup" name="signup" plan="2" />';
		$("plan3signup").innerHTML = '<img src="images/homePage/signup_gr.png" class="signup" name="signup" plan="3" />';

		$("plan5signup").innerHTML = '<img src="images/homePage/signup_gr.png" class="signup" name="signup" plan="5" />';
		$("plan6signup").innerHTML = '<img src="images/homePage/signup_or.png" class="signup" name="signup" plan="6" />';
		$("plan7signup").innerHTML = '<img src="images/homePage/signup_red.png" class="signup" name="signup" plan="7" />';
		$("plan8signup").innerHTML = '<img src="images/homePage/signup_gr.png" class="signup" name="signup" plan="8" />';
		
		Utils.innerHTML("signInButton", '<img src="images/homePage/login.gif" class="clickable" onclick="loginFromSeo()" style="margin-right: 10px"/><a href="#plansAnchor"><img src="images/homePage/signup_blue.gif" class="clickable" /></a>');
		Utils.innerHTML("checkContainer", '<img onclick="checkWithRedirect();" src="images/homePage/check.gif" id="checkImg" class="clickable"/>');
		
		
		var plansHtmlBuffer = new Array();	
		plansHtmlBuffer.push('<table cellpadding="0" cellspacing="0" class="plansAll">');
		plansHtmlBuffer.push(		'<tr>');
		plansHtmlBuffer.push(			'<td>');
		plansHtmlBuffer.push(				'<img class="clickable planLeftImg" name="signup" src="images/s.gif" plan="0"/>');
		plansHtmlBuffer.push(			'</td>');
		plansHtmlBuffer.push(			'<td>');
		plansHtmlBuffer.push(				'<img class="clickable planRightImg" name="signup" src="images/s.gif" plan="5"/>');
		plansHtmlBuffer.push(			'</td>');
		plansHtmlBuffer.push(		'</tr>');
		plansHtmlBuffer.push(		'<tr>');
		plansHtmlBuffer.push(			'<td>');
		plansHtmlBuffer.push(				'<img class="clickable planLeftImg" name="signup" src="images/s.gif" plan="1"/>');
		plansHtmlBuffer.push(			'</td>');
		plansHtmlBuffer.push(			'<td>');
		plansHtmlBuffer.push(				'<img class="clickable planRightImg" name="signup" src="images/s.gif" plan="6"/>');
		plansHtmlBuffer.push(			'</td>');
		plansHtmlBuffer.push(		'</tr>');
		plansHtmlBuffer.push(		'<tr>');
		plansHtmlBuffer.push(			'<td>'); 
		plansHtmlBuffer.push(				'<img class="clickable planLeftImg" name="signup" src="images/s.gif" plan="2"/>');
		plansHtmlBuffer.push(			'</td>');
		plansHtmlBuffer.push(			'<td>'); 
		plansHtmlBuffer.push(				'<img class="clickable planRightImg" name="signup" src="images/s.gif" plan="7"/>');
		plansHtmlBuffer.push(			'</td>');
		plansHtmlBuffer.push(		'</tr>');
		plansHtmlBuffer.push(		'<tr>');
		plansHtmlBuffer.push(			'<td>');
		plansHtmlBuffer.push(				'<img class="clickable planLeftImg" name="signup" src="images/s.gif" plan="3"/>');
		plansHtmlBuffer.push(			'</td>');
		plansHtmlBuffer.push(			'<td>');
		plansHtmlBuffer.push(				'<img class="clickable planRightImg" name="signup" src="images/s.gif" plan="8"/>');
		plansHtmlBuffer.push(			'</td>');
		plansHtmlBuffer.push(		'</tr>');
		plansHtmlBuffer.push(		'<tr>');
		plansHtmlBuffer.push(			'<td colspan="2" style="padding-top:10px;padding-left:4px;" align="left">');
		plansHtmlBuffer.push(				'<a href="#plansAnchor" style="color:blue;font-size:11px">See Details</a>');
		plansHtmlBuffer.push(			'</td>');
		plansHtmlBuffer.push(		'</tr>');
		plansHtmlBuffer.push('</table>');
		Utils.innerHTML("logoContainer", plansHtmlBuffer.join(''));
		
		trsNot4Free[0] = document.getElementById("not4free");
		trsNot4Free[1] = trsNot4Free[0].nextSibling;
		trsNot4Free[2] = trsNot4Free[1].nextSibling; 
		var signups = document.getElementsByName("signup");
		for(var j=0; j<signups.length; ++j){
			Ext.EventManager.addListener( signups[j], "click", signUp);
		}

		var k = new Ext.KeyMap($("password"), { key:13,  fn:loginFromSeo, scope:$("password"),   correctScope:true } );
		var urlKey = new Ext.KeyMap($("checkUrl"), { key:13,  fn:$("checkImg").onclick, scope:$("checkUrl"),   correctScope:true } );
		k.enable();
		urlKey.enable();
	}
	function addEnters(){
		SignUpWindow.init();
		if($("signInTable")!=null){
			changeFormStyle($("signInTable"), true, false, false, false, false);
		}
		if($("checkSiteTable")!=null){
			changeFormStyle($("checkSiteTable"), true, false, false, false, false);
		}
		if($("signUpWindowBody")!=null){
			changeFormStyle($("signUpWindowBody"), true, true, false, true, false,false);
		}		
		Utils.innerHTML("signInButton", '<img src="images/homePage/login.gif" class="clickable" onclick="loginFromSeo()"/>');
		Utils.innerHTML("checkContainer", '<img onclick="checkWithRedirect();" src="images/homePage/check.gif" id="checkImg" class="clickable"/>');
		
		
		var plansHtmlBuffer = new Array();	
		plansHtmlBuffer.push('<table cellpadding="0" cellspacing="0">');
		plansHtmlBuffer.push(		'<tr>');
		plansHtmlBuffer.push(			'<td>');
		plansHtmlBuffer.push(				'<img class="clickable" name="signup" src="images/seo/plan_personal.gif" plan="0"/>');
		plansHtmlBuffer.push(			'</td>');
		plansHtmlBuffer.push(			'<td>');
		plansHtmlBuffer.push(				'<img class="clickable" name="signup" src="images/seo/plan_personal+.gif" plan="5"/>');
		plansHtmlBuffer.push(			'</td>');
		plansHtmlBuffer.push(		'</tr>');
		plansHtmlBuffer.push(		'<tr>');
		plansHtmlBuffer.push(			'<td>');
		plansHtmlBuffer.push(				'<img class="clickable" name="signup" src="images/seo/plan_basic.gif" plan="1"/>');
		plansHtmlBuffer.push(			'</td>');
		plansHtmlBuffer.push(			'<td>');
		plansHtmlBuffer.push(				'<img class="clickable" name="signup" src="images/seo/plan_basic+.gif" plan="6"/>');
		plansHtmlBuffer.push(			'</td>');
		plansHtmlBuffer.push(		'</tr>');
		plansHtmlBuffer.push(		'<tr>');
		plansHtmlBuffer.push(			'<td>'); 
		plansHtmlBuffer.push(				'<img class="clickable" name="signup" src="images/seo/plan_plus.gif" plan="2"/>');
		plansHtmlBuffer.push(			'</td>');
		plansHtmlBuffer.push(			'<td>'); 
		plansHtmlBuffer.push(				'<img class="clickable" name="signup" src="images/seo/plan_plus+.gif" plan="7"/>');
		plansHtmlBuffer.push(			'</td>');
		plansHtmlBuffer.push(		'</tr>');
		plansHtmlBuffer.push(		'<tr>');
		plansHtmlBuffer.push(			'<td>');
		plansHtmlBuffer.push(				'<img class="clickable" name="signup" src="images/seo/plan_free.gif" plan="3"/>');
		plansHtmlBuffer.push(			'</td>');
		plansHtmlBuffer.push(			'<td>');
		plansHtmlBuffer.push(				'<img class="clickable" name="signup" src="images/seo/plan_pro.gif" plan="8"/>');
		plansHtmlBuffer.push(			'</td>');
		plansHtmlBuffer.push(		'</tr>');
		plansHtmlBuffer.push('</table>');
		Utils.innerHTML("logoContainer", plansHtmlBuffer.join(''));
		trsNot4Free[0] = document.getElementById("not4free");
		trsNot4Free[1] = trsNot4Free[0].nextSibling;
		trsNot4Free[2] = trsNot4Free[1].nextSibling; 
		var signups = document.getElementsByName("signup");
		for(var j=0; j<signups.length; ++j){
			Ext.EventManager.addListener( signups[j], "click", signUp);
		}
		var k = new Ext.KeyMap($("password"), { key:13,  fn:loginFromSeo, scope:$("password"),   correctScope:true } );
		var urlKey = new Ext.KeyMap($("checkUrl"), { key:13,  fn:$("checkImg").onclick, scope:$("checkUrl"),   correctScope:true } );
		k.enable();
		urlKey.enable();		
	}

	function signInWithEnter(){
		login();
		return false;
	}


	function signUp(ev){
		SignUpWindow.element = ev.target || ev.srcElement;
		SignUpWindow.showDialog(ev);
	}
	function showHelp(topic){
		var txt;
		switch(topic){
			case 'New Position Monitor' :
						txt = 'Position Monitor will run daily keyword search on your selected <b>search engines</b> using your specified <b>keywords</b>. When we find your entered <b>URL</b> within search results we will record the position. Our views will provide search positions of your websites in each search engine per each keyword, as well as average performance. You can give your own <b>name</b> to the monitoring module and select default <b>view</b>.';
						break;
			case 'New Backlinks Monitor':
						txt = 'Backlinks Monitor measures daily in-links to user selected <b>URL(s)</b> from other websites reported by <b>search engines</b>.<br/><br/> In case of several URLs and search engines it can show average number of in-links per URL and average in-links per each search engine.';
						break;
			case 'New Indexed Pages Monitor':
						txt = 'Indexed Pages Monitor measures daily number of pages indexed per each <b>URL</b> per selected <b>search engines</b>.<br/><br/> In case of several URLs and search engines it can show average number of indexed pages per URL and average number of indexed pages per each search engine.';
						break;
			case 'New Page Rank Monitor':
						txt = 'Page Rank Monitor measures daily Google Page Rank per <b>URL</b>.<br/><br/> In case of several URLs it can show also average PR per URL and also average page rank per each country Google instance.';
						break;
			case 'Search Position Options' :
						txt ='Site <b>Position</b> view reports absolute position of your selected URL within selected search engines. E.g. 1st is the top and the best position.<br/><br/>Site <b>Performance</b> is calculated as a relation of search position to search deepness. E.g. 1st position out of 100 is 100%, not found within 100 means 0% performance.<br/><br/><b>Keyword Performance</b> is an average performance per each keyword in all search engines. It allows comparing site visibility per each keyword.<br/><br/><b>Search Engine Performance</b> is an average performance per each search engine for all keywords. It allows comparing site ranking per each search engine.';
						break;
			case 'Backlinks Options' :
						txt ='<b>Links</b> view shows number of backlinks to your selected URL(s) in different search engines.<br/><br/><b>Links Per Url</b> view is an average number of backlinks per each URL in different search engines.<br/><br/><b>Links Per Search Engine</b> view is an average number of  backlinks to your selected URL(s) per each search engine';
						break;
			case 'Indexed Pages Options' :
						txt ='<b>Pages</b> view shows number of indexed pages (subpages) of your selected URL(s) in different search engines.<br/><br/><b>Pages Per Url</b> view is an average number of indexed pages (subpages) per each URL in different search engines.<br/><br/><b>Pages Per Search Engine</b> view is an average number of indexed pages (subpages) of your selected URL(s) per each search engine.';
						break;
			case 'PageRank Options' :
						txt ='<b>PageRank</b> view shows Google PageRank of your selected URL(s) in different Google locales (i.e. google.co.uk, google.com, google.de)<br/><br/><b>PageRank Per Url</b> view is an average Google PageRank per each URL in different Google locales<br/><br/><b>PageRank Per Search Engine</b> view is an average Google PageRank of your selected URL(s) per Google locale.';
						break;
			case 'Ranking Options' :
						txt ='<b>Ranking</b> view shows Rank of your selected URL(s) in different Ranking systems.<br/><br/><b>Ranking Per Url</b> view is an average Rank per each URL in different Ranking systems.<br/><br/><b>Ranking Per Service</b> view is an average Rank of your selected URL(s) per each Ranking system.';
						break;
			case 'Social Bookmarks Options' :
						txt ='<b>Social Bookmarks</b> view shows number of users those add to their bookmarks your selected URL(s) in different Social Bookmarking services<br/><br/><b>Social Bookmarks Per Url</b> view is an average number of bookmarks per each URL in different Social Bookmarking services.<br/><br/><b>Social Bookmarks Per Service</b> is an average number of bookmarks of your selected URL(s) per each Social Bookmarking service.';
						break;



			case 'SMS' : 
						txt = 'In case of any issue with your server an SMS can be sent to your mobile phone informing you regarding that immediately. This service will be activated after your 30-day trial period. You will get a bunch of FREE SMSs included with corresponding plan. In case you will need additional number of SMSs please contact us.';
						break;
			case 'Phone number format' :
						txt = 'Mobile number need to be set in the standard international format, with country code followed by number. No leading zero to the number and no special characters such as "+" or spaces must be used. For example, a number in the UK being 07901231234 should be changed to 447901231234.';
						break;
			case 'Email contact' : 
						txt = 'You will get a confirmation e-mail on this account within several minutes. In order to receive alerts you will need to confirm your e-mail address. If your added contact highlighted with a red color in a contacts table that means that you didn`t confirm your account yet.';
						break;
			case 'IM contact' : 
						txt = 'You will get a confirmation message on this account within several minutes. In order to receive alerts you will need to confirm your IM. If your added contact highlighted with a red color in a contacts table that means that you didn`t confirm your account yet.'
						break;
		}
		MessageWindow.show( { header: topic,
								  body: "<div style='font-size:12px'>" + txt + "</div>",
								  hideCancel: true,hideOk: true
						});
		
	}
	function chooseCycle(val,plan){
		$("signupPrice").innerHTML = prices[parseInt(val) + 2*plan];
	}
	
	function TOSChecked(checkbox){
		if(checkbox.checked == true){
			SignUpWindow.enableButton();
		}
		else{
			SignUpWindow.disableButton();
		}
	}

var plans = ["Personal", "Basic", "Plus", "Free", "", "Personal+", "Basic+", "Plus+", "Pro"];
var prices = [	"1.80$/month", "",
				"8.28$/month", "",
				"29.88$/month", "",
				"FREE", "",
				"", "",
				"4.50$/month", "",
				"15.30$/month", "",
				"57.60$/month", "",
				"99.90$/month", ""];
var cycles = ["M", "Y"];

 SignUpWindow = function()
{
    var signUpDialog, showBtn, action, isResized = false;
	var firstName, lastName, eMail, pass, rePassword;
	var imNum, imType,image,  imageCode;
	var imgPass1, imgPass2;
	var cicleInput;
	var imageTime, imageLoad = false;

	var isGenerated = false;

	return {
		init : function()
		{

			if( isGenerated )return;
			else isGenerated = true;

			signUpDialog = new Ext.BasicDialog("signUp-dlg",
			{
                modal:true,
                width:375,
                height:460,
                shadow:true,
                fixedcenter: true,
				resizable:false,
				autoscroll: false
			});

            SignUpWindow.signUpDialog = signUpDialog;
            signUpDialog.addKeyListener(27, this.hide, signUpDialog);
                if(Ext.isSafari) signUpDialog.addListener("beforehide",Layouter.showCharts);
                signUpDialog.addListener("beforehide",SignUpWindow.reset);
 				signUpDialog.addButton('Submit', this.actionHandler, action);
 				$("signUpWindowHead").innerHTML = "Sign Up";

				imgPass1 = $("passwordImg");imgPass2 = $("repasswordImg");
				firstName = $("sfname");lastName = $("slname");
				eMail = $("smail");
				pass = $("spass");rePassword = $("srepass");
				//imNum =$("sim");imType = $("simType", true);
				cicleInput = $("cicle");

				pass.onkeyup = pass.onblur= function() {
					imgPass1.innerHTML = (this.value.length>=6 && (this.value==(rePassword.value) ? rePassword.value : this.value)) ? rightImgStr : wrongImgStr ;
					imgPass2.innerHTML = (this.value.length>=6 && this.value==rePassword.value) ? rightImgStr  : wrongImgStr ;
				}

				rePassword.onkeyup = rePassword.onblur= function() {
					imgPass2.innerHTML = (this.value.length>=6 && this.value==pass.value) ? rightImgStr  : wrongImgStr ;
					if(this.value.length>=6 && pass.value.length>=6)
						imgPass1.innerHTML = (this.value.length>=6 && this.value==pass.value) ? rightImgStr  : wrongImgStr ;
				}

			SignUpWindow.initialized = true;
		},


		signUp: function()
		{

			var actionHandler = signUpDialog.el.dom.actionHandler;
			var returnValue = actionHandler();

			if( returnValue == true )
			{
				signUpDialog.hide();
			}
		},
		eMail:"",
		password:"",
		actionHandler: function(){

			SignUpWindow.disableButton();

			var validate = "success";

			var validate = validateContact(firstName.value,lastName.value,eMail.value,"","key","","");

			if (validate == "success") {
				if(pass.value.length>=6 && pass.value == rePassword.value){
					var fname = encode(firstName.value);
					var lname = encode(lastName.value);
				//	var im = encode(imNum.value);
					//var imtype = $("simType", true).getValue();
					var email = eMail.value;SignUpWindow.eMail = email;
					var password = encode( pass.value);SignUpWindow.password = password;
					var accounttype = SignUpWindow.element.getAttribute("plan");
					var cycle = 0;// for now only month cycleInput.value;
					
					//var key = imageCode.value;
					var data = "type=signUp&email="+email+"&password="+password+"&timezone="+(-new Date().getTimezoneOffset())+"&fname="+fname+"&lname="+lname+"&im=&mobphone=&imtype=1&accounttype="+accounttype+"&cycle="+cycles[cycle];
					SignUpWindow.info( Framework.Lang.checking+"...");
					Request.sendPOST(Framework.userURL, data, SignUpWindow.signupResponse);

				}else{
					imgPass1.innerHTML = wrongImgStr;
					imgPass2.innerHTML = wrongImgStr;
					SignUpWindow.enableButton();
					SignUpWindow.error("Not valid password or re-password. ");
				}


			}else if(validate != "success"){
				SignUpWindow.error(validate);
				SignUpWindow.enableButton();
			}

		},
		signupResponse: function(response){
				var responseChildNodes = response.responseXML.documentElement.childNodes;
				var res = responseChildNodes[0].firstChild.nodeValue;
				switch(res) {
				case "success":
						if(responseChildNodes.length > 1){
						$("paypalsignupform").innerHTML = responseChildNodes[1].firstChild.nodeValue;
						$("paypalsignupform").firstChild.submit();
						}
						SignUpWindow.enableButton();
						SignUpWindow.removeErrorPart();
						SignUpWindow.hide();
						var link = 'Congratulations, you have successfully subscribed for a Free Plan. Please use your username and password to login into your Monitis account.'; 
						if(responseChildNodes.length > 1){
						link = "Please wait... In case you're not redirected to PayPal in a several seconds <span  onclick='$(\"paypalsignupform\").firstChild.submit();'  style='cursor:pointer;color:#0000ff;font-size:10px;'>click here</span>.";
						}
						
						MessageWindow.show( { header: Framework.Lang.message,
								  body: link,
								  hideCancel: true
						});
					break;
				case "error":
					SignUpWindow.enableButton();
					SignUpWindow.error(Framework.Lang.error);
				case "inuse" : case "user exists":
					SignUpWindow.enableButton();
					SignUpWindow.error(Framework.Lang.signupEmailInUse);
					break;
				case "invalidkey":
					SignUpWindow.enableButton();
					SignUpWindow.error("Invalid Image Code");
					break;
				default:
						SignUpWindow.enableButton();
						SignUpWindow.error(res);
     				break;
			}

		},
		reSendMail:function(){
			var data = "type=sendmail&email="+SignUpWindow.eMail+"&password="+SignUpWindow.password;
			Request.sendPOST(Framework.userURL, data, SignUpWindow.completeReSendMail);
		},
		completeReSendMail:function(response){
			var res = response.responseXML.documentElement.firstChild.nodeValue;
			if(res == "success"){
				MessageWindow.hide();
			}
		},
		showDialog: function( event )
		{
			if(!this.isGenerated)SignUpWindow.init();
			if( signUpDialog == null  )return;
			SignUpWindow.removeErrorPart();
			signUpDialog.el.dom.actionHandler = SignUpWindow.actionHandler;
			var ev = event.target || event.srcElement;
			var plan = parseInt(SignUpWindow.element.getAttribute("plan"));
			if(plan == FREEPLAN){
				signUpDialog.resizeTo(375,370);
				for(var i = 0; i<trsNot4Free.length; ++i){
					trsNot4Free[i].style.display="none";
				}	
			}
			else{
				signUpDialog.resizeTo(375,460);
				for(var i = 0; i<trsNot4Free.length; ++i){
					trsNot4Free[i].style.display="";
				}	
			$("signupPrice").innerHTML = prices[2*plan];
			}
			$("signupPlan").innerHTML = plans[plan];
			
			$("termCheckbox").checked = true;
			$("termCheckbox").changeValue(false);
			signUpDialog.show(ev);
			TOSChecked($("termCheckbox"));
		},

		resizeTo: function( width, height )
		{
			signUpDialog.resizeTo( width, height );
		},

	    reset: function(){
			$("signupFORM").reset();
			$("passwordImg").innerHTML = "*";
			$("repasswordImg").innerHTML = "*";
			$("sfname", true ).reset();
			$("slname", true ).reset();
			$("smail", true ).reset();
			$("spass", true ).reset();
			$("srepass", true ).reset();
			SignUpWindow.enableButton();
	    },

		putImage: function(){
			if(!imageLoad){
				$("signUpValidation").src = "ImageCaptchaServlet?t="+imageTime;
				setTimeout("SignUpWindow.putImage()",1000);
			}

		},
		imageLoad: function(){
			imageLoad = true;
		},
		disableButton: function()
		{
			signUpDialog.buttons[0].disable();
		},

		enableButton: function()
		{
			signUpDialog.buttons[0].enable();
		},

		log: function( errorMessages, append, type )
		{
			if( ! append )
				$("signUp_error_part").firstChild.innerHTML = "";

			if( typeof( errorMessages ) == "string" ) errorMessages = [ errorMessages ];

			for( var i=0; i<errorMessages.length; i++ )
				$("signUp_error_part").firstChild.innerHTML += "<li >" +errorMessages[i] + "</li>";
			$("signUp_error_part").style.display = "block";

			$("signUp_error_part").className = type;

			try{
				if( !isResized )
				{
					isResized = true;
					signUpDialog.resizeTo(signUpDialog.size.width, signUpDialog.size.height + $("signUp_error_part").offsetHeight);
					isResized = true;
				}
			}catch(ex){}
		},

		error: function( errorMessages, append )
		{
			this.log( errorMessages, append, "log_error" );
		},

		info: function( message,append )
		{
			this.removeErrorPart( true );
			this.log( [message], append, "log_info" );
		},

		removeErrorPart: function( deleteErrors )
		{
			var dialog_error_part = $("signUp_error_part");

			try{
				if( isResized )
				{
					signUpDialog.resizeTo(signUpDialog.size.width, signUpDialog.size.height - dialog_error_part.offsetHeight);
					isResized = false;
				}
			}catch(ex){}

			if( deleteErrors )dialog_error_part.firstChild.innerHTML = "";
			dialog_error_part.style.display = "none";
		},



		hide: function()
		{
			signUpDialog.hide();
		}
    };
}();


		changePass1 = document.getElementById("chpassword");
		changePass2 = document.getElementById("chrepassword");
		imgChangePass1 = document.getElementById("chpasswordImg");
		 imgChangePass2 = document.getElementById("chrepasswordImg");
		msg = document.getElementById("signInError");		


		function login(){
			msg.innerHTML = "";
			var email = $("email").value;
			var password = encode($("password").value);
			if (email !="" && password != "") {
				var data = "type=signIn&email="+email+"&password="+password+"&timezone="+(-new Date().getTimezoneOffset());
				msg.innerHTML = Framework.Lang.checking+"...";
				Request.sendPOST(Framework.userURL+'?nocache='+Math.random(), data, signResponse);
			}
			else{
				msg.innerHTML = "Input your email and password";
			}
		}

		function signResponse(response){
			try{
				var responseChildNodes = response.responseXML.documentElement.childNodes;
			var key = response.responseXML.documentElement.firstChild.nodeValue;	
				if(responseChildNodes.length > 1)
				key = responseChildNodes[0].firstChild.nodeValue;
			if(key == "success"){
				if(responseChildNodes.length > 1){
						$("paypalsignupform").innerHTML = responseChildNodes[1].firstChild.nodeValue;
						$("paypalsignupform").firstChild.submit();
						var link = "Please wait... In case you're not redirected to PayPal in a several seconds <span  onclick='$(\"paypalsignupform\").firstChild.submit();'  style='cursor:pointer;color:#0000ff;font-size:10px;'>click here</span>.";
						
						
						MessageWindow.show( { header: Framework.Lang.message,
								  body: link,
								  hideCancel: true
						});
						}
						else{
				refreshloginframe();
				$("main-page-loading").style.display = "block";
				$("homePageContainer").style.display = "none";
				Controller.init();
				}
			}
			else if(key == "waiting4Start"){
				document.getElementById("signInError").innerHTML = "Please,confirm Your PayPal subscription";
			}
			else if(key == "confirm"){
				document.getElementById("signInError").innerHTML = "Confirm your account and try again.";
			}else if( key == "mismatch" || key == "error"){
				document.getElementById("signInError").innerHTML = Framework.Lang.signinNoMatch;
			}else{
				document.getElementById("signInError").innerHTML = key;
			}
			}catch(ex){}
		}


		if(changePass1 && changePass2){
					changePass1.onkeyup = changePass1.onblur= function() {
							imgChangePass1.innerHTML = (this.value.length>=6 && (this.value==(changePass2.value) ? changePass2.value : this.value)) ? rightImgStr  : wrongImgStr ;
							imgChangePass2.innerHTML = (this.value.length>=6 && this.value==changePass2.value) ? rightImgStr  : wrongImgStr ;
					}


					changePass2.onkeyup = changePass2.onblur= function() {
							imgChangePass2.innerHTML = (this.value.length>=6 && this.value==changePass1.value) ? rightImgStr  : wrongImgStr ;
							if(this.value.length>=6 && changePass1.value.length>=6)
								imgChangePass1.innerHTML = (this.value.length>=6 && this.value==changePass1.value) ? rightImgStr  : wrongImgStr ;
					}


		}

		function changePassView(bool)
		{
			msg.innerHTML = "";

			if(bool){
				document.getElementById("newpass").style.display = "block";
				document.getElementById("retypepass").style.display = "block";
				changePass1.value = "";
				changePass2.value = "";
				$("signInButton").innerHTML = '<input type="image" src="images/homePage/change.gif" onclick="changePass();"/>';
				$("chPassContainer").href = "javascript:changePassView(false)";
				$("chPassContainer").innerHTML = "Want to login ?!";

			}else{
				document.getElementById("newpass").style.display = "none";
				document.getElementById("retypepass").style.display = "none";

				$("signInButton").innerHTML = '<img src="images/homePage/login.gif" onclick="login();" />';

				imgChangePass1.innerHTML = "";
				imgChangePass2.innerHTML = "";

				$("chPassContainer").href = "javascript:changePassView(true)";
				$("chPassContainer").innerHTML = "Change password?!";


			}


		}

		function changePass(){
			var email = document.getElementById("email").value;
			var oldpassword = encode(document.getElementById("password").value);
			var newpassword = encode(document.getElementById("chpassword").value);
			var repassword = encode(document.getElementById("chrepassword").value);

			if (email !="" && oldpassword != "") {
				if(newpassword.length>=6 && newpassword == repassword){
					var data = "type=change&email="+email+"&password="+oldpassword+"&newpassword="+newpassword;
					msg.innerHTML = Framework.Lang.checking+"...";
					Request.sendPOST(Framework.userURL+'/?nocache='+Math.random(), data, changeResponse);
				}
			}
			else{
				msg.innerHTML = "Input your email and password";
			}
		}

		function changeResponse(response){

				switch(response.responseXML.documentElement.firstChild.nodeValue) {
					case "success":	{
						document.getElementById("newpass").style.display = "none";
						document.getElementById("retypepass").style.display = "none";
						$("signInButton").innerHTML = '<a href="javascript:login();" ><img src="images/homePage/login.gif" alt=""/></a>';
						document.getElementById("password").value ="";
						document.getElementById("chpassword").value ="";
						document.getElementById("chrepassword").value ="" ;
						imgChangePass1.innerHTML = "";
						imgChangePass2.innerHTML = "";
						msg.innerHTML = "Your password was changed";break;
					}
					case "error": {
						document.getElementById("newpass").style.display = "block";
						document.getElementById("retypepass").style.display = "block";
						changePass1.value = "";
						changePass2.value = "";
						$("signInButton").innerHTML = '<input type="image" src="images/homePage/change.gif" onclick="changePass();"/>';
						$("chPassContainer").href = "javascript:changePassView(false)";
						$("chPassContainer").innerHTML = "Want to login ?!";
						msg.innerHTML =Framework.Lang.signinNoMatch;break;
					}
				}


		}

	function sendPasswdReq(){
		var email = document.getElementById("email").value;
		if(email != ""){
			Request.sendGET(Framework.serverPath+"/ChangePassword?email="+email, sendPasswdMailReq);
			msg.innerHTML = "Sending mail...";
		}
		else{
			msg.innerHTML = "Please input your e-mail address";
		}
	}

	function sendPasswdMailReq(response){
		if(response.responseText == 'OK'){
			msg.innerHTML = "Your password is sent to your email";
			setTimeout("refreshloginframe()", 60*1000);
		}
		else if(response.responseText == 'notExist'){
			msg.innerHTML = Framework.Lang.signinNoMatch;
		}else if(response.responseText == 'ERROR'){
			msg.innerHTML = "error during mail sending";
		}
		else{
			msg.innerHTML = "error";
		}
	}

	function refreshloginframe(){
		document.getElementById("email").value = "";
		document.getElementById("password").value = "";
		document.getElementById("chpassword").value ="";
		document.getElementById("chrepassword").value ="" ;
		document.getElementById("newpass").style.display = "none";
		document.getElementById("retypepass").style.display = "none";
		imgChangePass1.innerHTML = "";
		imgChangePass2.innerHTML = "";
		msg.innerHTML = "";
	}

