	var startPath = (Framework.enterprise ? "customizable/"+Framework.enterprise+"/" : "");
	var rightImgStr = '<img src= "images/homePage/right.gif" alt="" />';
	var wrongImgStr = '<img src= "images/homePage/wrong.gif" alt="" />';
	var off2="http://monitis-images.s3.amazonaws.com/toolbar/ico_liveChatOffline.gif"; 
	var on2="http://monitis-images.s3.amazonaws.com/toolbar/ico_liveChatOnline.gif";
	var jsPathsArray = [
							"js/module.js?v=25",
							"js/wizard.js?v=24",
							"js/layouting.js?v=16",
							"js/controller.js?v=81",
							"js/popupDialogs.js?v=80",
							"Charts/JS/FusionCharts.js?v=10",
							"modules/calendar/calendar.js?v=4",
							"modules/test/test.js?v=264",
							"js/portlet.js?v=49107",
							"js/AC_OETags.js",
							"js/drag.js",
							"js/tooltip.js",
							"js/addmanager.js?v=7",
							"libs/accordion/accordion-menu-v2.js",
							"js/widget.js?v=6",
							"publicWidget/pSnapshot.js",
							"js/managers.js?v=4",
							"js/chartManager.js?v=4"
						];
	var jsPathsArrayDepended = [startPath+"js/menuItems.js?v=13", "js/modules.js?v=91"];		
	var cssPathsArray = [
							"libs/accordion/accordion-menu-v2.css?v=2",
							"style/global.css?v=4",
							"style/modules.css?v=2",
							"modules/transaction/netFF.css"
						];
	var liveJsPathsArray = [
							"http://live2support.com/js/lsjs1.php?stid=12244&cmi=1&v="+(new Date().getTime())
	//						"http://live2support.com/js/js_l2sjs.php?stid=12244&dept=&l2scuki=Y&cmi=1"
	];
	function start(){
		MessageWindow.init();
		if(!Framework.morePlans)
			$id("dispersedMonitors").onclick=showDispersedMonitors;
		else{
			changeFormStyle($id("planDiv"),true,true,false,true);
			$id("externalX").onkeyup=calculateCustomPrice;$id("externalX").onblur=calculateCustomPrice;
			$id("internalX").onkeyup=calculateCustomPrice;$id("internalX").onblur=calculateCustomPrice;
			$id("transactionX").onkeyup=calculateCustomPrice;$id("transactionX").onblur=calculateCustomPrice;
			$id("transactionfrequencyX",true).addListener("select",calculateCustomPrice);
			$id("vtX").onkeyup=calculateCustomPrice;$id("vtX").onblur=calculateCustomPrice;
			$id("locationX_US").onchange=calculateCustomPrice;$id("locationX_CN").onchange=calculateCustomPrice;
			$id("locationX_UK").onchange=calculateCustomPrice;$id("locationX_PA").onchange=calculateCustomPrice;
			$id("locationX_DE").onchange=calculateCustomPrice;$id("locationX_AU").onchange=calculateCustomPrice;
			$id("APIX").onchange=calculateCustomPrice;
			$id("EC2X").onkeyup=calculateCustomPrice;$id("EC2X").onblur=calculateCustomPrice;
			$id("s3X").onkeyup=calculateCustomPrice;$id("s3X").onblur=calculateCustomPrice;
			$id("frequencyX",true).addListener("select",calculateCustomPrice);
			
			$id("smsX").onkeyup=calculateCustomPrice;$id("smsX").onblur=calculateCustomPrice;
			$id("subaccountX").onkeyup=calculateCustomPrice;$id("subaccountX").onblur=calculateCustomPrice;
			calculateCustomPrice();
		}
		changeFormStyle($id("signInTable"), true, false, false, false, false);
	 	//$id("email").focus();
	 	//$id("signInButton").innerHTML = '<a href="#signup"><img src="images/homePage/signup_blue.png" class="loginbut"/></a><img src="images/homePage/login_green.png" onclick="login();" class="loginbut"/>';
	 	$id("signInButton").innerHTML = '<img src="images/homePage/login.gif" onclick="login();" class="loginbut"/>';
	 	if(Framework.morePlans){
			//$id("plan0signup").innerHTML = '<div class="signup signup_collection signup_green" name="signup" plan="0" cycle=0 onclick="signUp(event)"></div>';
			//$id("plan0ysignup").innerHTML = '<div class="signup signup_collection signup_green" name="signup" plan="0" cycle=1 onclick="signUp(event)"></div>';
			//$id("plan1signup").innerHTML = '<div class="signup signup_collection signup_orange" name="signup" plan="1" cycle=0 onclick="signUp(event)"></div>';
			$id("plan1ysignup").innerHTML = '<div class="signup signup_collection signup_orange" name="signup" plan="1" cycle=1 onclick="signUp(event)"></div>';
			//$id("plan2signup").innerHTML = '<div class="signup signup_collection signup_red" name="signup" plan="2" cycle=0 onclick="signUp(event)"></div>';
			$id("plan2ysignup").innerHTML = '<div class="signup signup_collection signup_red" name="signup" plan="2" cycle=1 onclick="signUp(event)"></div>';
			//$id("plan3signup").innerHTML = '<div class="signup signup_collection signup_green" name="signup" plan="3" onclick="signUp(event)"></div>';
			//$id("plan11signup").innerHTML = '<div class="signup signup_collection signup_green" name="signup" plan="11" cycle=0 onclick="signUp(event)"></div>';
			//$id("plan11ysignup").innerHTML = '<div class="signup signup_collection signup_green" name="signup" plan="11" cycle=1 onclick="signUp(event)"></div>';
			//$id("plan12signup").innerHTML = '<div class="signup signup_collection signup_orange" name="signup" plan="12" cycle=0 onclick="signUp(event)"></div>';
			//$id("plan12ysignup").innerHTML = '<div class="signup signup_collection signup_orange" name="signup" plan="12" cycle=1 onclick="signUp(event)"></div>';
			//$id("plan7signup").innerHTML = '<div class="signup signup_collection signup_orange" name="signup" plan="7" cycle=0 onclick="signUp(event)"></div>';
//			$id("plan7ysignup").innerHTML = '<div class="signup signup_collection signup_orange" name="signup" plan="7" cycle=1 onclick="signUp(event)"></div>';
			$id("planXysignup").innerHTML = '<div class="signup signup_collection signup_orange" name="signup" plan="4" cycle=1 onclick="signUp(event)"></div>';
			$id("plan25ysignupdiscount").innerHTML = '<div class="signup signup_collection signup_red" name="signup" plan="25" cycle=0 onclick="prepareSignup()"></div>';
			$id("trialcountry").innerHTML = countrySelectInnerHTML;
			//setChangePassFunctions($id("trialpass"),$id("trialrepass"),$id("trialpasswordImg"),$id("trialrepasswordImg"));
			changeFormStyle($id("trialTable"), true,true);
			$id("trialpass",true).addListener("focus",trialPassOnChange);
			$id("trialrepass",true).addListener("focus",trialPassOnChange);
		}
		else{
			$id("plan1ysignupdiscount").innerHTML = '<div class="signup signup_collection signup_orange" name="signup" plan="1" cycle=1 onclick="signUp(event)"></div>';
			$id("plan2ysignupdiscount").innerHTML = '<div class="signup signup_collection signup_red" name="signup" plan="2" cycle=1 onclick="signUp(event)"></div>';
			$id("plan25ysignupdiscount").innerHTML = '<div class="signup signup_trial" name="signup" plan="25" cycle=0 onclick="signUp(event)"></div>';
		}
		//$id("planWebMsignupdiscount").innerHTML = '<div class="signup signup_collection signup_green" name="signup" plan="9" cycle=0 onclick="signUp(event)"></div>';
		//$id("planWebYsignupdiscount").innerHTML = '<div class="signup signup_collection signup_green" name="signup" plan="9" cycle=1 onclick="signUp(event)"></div>';
		
		var k = new Ext.KeyMap($id("password"), { key:13,  fn:signInWithEnter, scope:$id("password"),   correctScope:true } );
	    k.enable();
	    
	 /*   if (window.screen.width < 1080){
			var node = $id("planDiv");
			var div = document.createElement("div");
			div.style.padding = "0px 30px";	
			div.innerHTML = node.innerHTML;
			node.parentNode.removeChild(node);
			document.body.appendChild(div);
	    }*/
	   /* 
	    var signups = document.getElementsByName("signup");
		for(var j=0; j<signups.length; ++j){
			Ext.EventManager.addListener( signups[j], "click", signUp);
		}*/
	}
	function prepareSignup(){
		var validate = "success";
		var firstName = $id("trialfname");
		var lastName = $id("triallname");
		var eMail = $id("trialmail");
		var pass = $id("trialpass_real");
		var rePassword = $id("trialrepass_real");
		var validate = validateContact(firstName.value,lastName.value,eMail.value,"","key","","Email");
			if (validate == "success") {
				if(pass.value.length>=6 && pass.value == rePassword.value){
					var fname = encode(firstName.value);
					var lname = encode(lastName.value);
					var email = encode(eMail.value);SignUpWindow.eMail = email;
					var password = encode( pass.value);SignUpWindow.password = password;
					var company = encode($id("trialcompany").value.trim());
					var country = $id("trialcountry",true).getValue();
					var phoneNumber = encode($id("trialphoneNumber").value.trim());
					var cycle = 0;
					var billingMethod = "paypal";
					var data = "type=signUp&email="+email+"&password="+password+"&timezone="+(-new Date().getTimezoneOffset())+"&fname="+fname+"&lname="+lname+"&im=&mobphone=&imtype=1&cycle="+cycles[cycle]+"&billingMethod="+billingMethod+"&"+(company!=""?"company="+company+"&":"")+(country!=""?"country="+country+"&":"")+(phoneNumber!=""?"phoneNumber="+phoneNumber+"&":"")+(Framework.enterprise?"enterprise="+Framework.enterprise+"&":"");					
					data+="&itemId=" + 25+"&itemCount_"+25+"="+1;
					$id("trialSignupError").innerHTML = Framework.Lang.checking+"...";
					if(document.referrer && document.referrer.indexOf("portal.monitis.com") == -1)
						document.cookie="referrer=" + document.referrer + "; path=/;";
					Request.sendPOST(Framework.userURL, data, trialSingupResponse);
				}else{
					$id("trialSignupError").innerHTML = "Not valid password or re-password. ";
				}
			}else{
				$id("trialSignupError").innerHTML = validate;
			}
	}
	function trialSingupResponse(response){
		var responseChildNodes = response.responseXML.documentElement.childNodes;
		var res = responseChildNodes[0].firstChild.nodeValue;
		switch(res) {
			case "success":
						$id("trialSignupError").innerHTML = "";
						if(Framework.enterprise){
							var link = 'Congratulations, you have successfully subscribed. Please use your username and password to login into your account.'; 
							MessageWindow.show( { header: Framework.Lang.message,
									  body: link,
									  hideCancel: true
							});
						}
						else window.location.href = "http://portal.monitis.com/web/guest/thank-you";
					break;
				case "error":
					$id("trialSignupError").innerHTML = Framework.Lang.error;
				case "inuse" : case "user exists":
					$id("trialSignupError").innerHTML = Framework.Lang.signupEmailInUse;
					break;
				default:
						$id("trialSignupError").innerHTML = res;
     				break;
			}
		}
	function calculateCustomPrice(){
		var preffix = "";
		if(typeof User != "undefined"){
			preffix = "M";
			if(arguments.length == 0 || arguments[0] != false)
				changesInCustomPlan = true; 	
		}
		 
		SignUpWindow.basketItems = [];
		var externalCount = parseInt($id("externalX"+preffix).value,10);
		var internalCount = parseInt($id("internalX"+preffix).value,10);
		var transactionCount = parseInt($id("transactionX"+preffix).value,10);
		var advancedexternalCount = parseInt($id("advancedexternalX"+preffix).value,10);
		var vtCount = parseInt($id("vtX"+preffix).value,10);
		var locations = $id("locationX"+preffix);
		var frequency = $id("frequencyX"+preffix, true).getValue();
		var transactionfrequency = $id("transactionfrequencyX"+preffix, true).getValue();
		var tlocations = $id("tlocationX"+preffix);
		var advancedexternalfrequency = $id("advancedexternalfrequencyX"+preffix, true).getValue();
		var talocations = $id("talocationX"+preffix);
		var api =  $id("APIX"+preffix);
		var ec2Count = parseInt($id("EC2X"+preffix).value,10);
		var s3Count = parseInt($id("s3X"+preffix).value,10);
		var price = 0;
		var locCounts = 0;
		var tlocCounts = 0;
		var talocCounts = 0;
		if(isNaN(externalCount)){
			externalCount = 0;
		}
		else if(externalCount != 0){
			SignUpWindow.basketItems.push({itemId:basketItems["external"].basketItem,quantity:externalCount});
			
			for(var i=0;i<locations.childNodes.length;++i)
				if(locations.childNodes[i].checked){
					locCounts++;
					SignUpWindow.basketItems.push({itemId:basketItems[locations.childNodes[i].value].basketItem,quantity:1});
			}
			if(locCounts == 0){
				showHelp(Framework.Lang.Help.LocationERRORMessage_key);
				return false;
			}
			price += externalCount * locCounts * basketItems[frequency].prices[0];
			SignUpWindow.basketItems.push({itemId:basketItems[frequency].basketItem,quantity:externalCount * locCounts});		
		}	
			
		var smsCount = parseInt($id("smsX"+preffix).value,10);
		var subaccountsCount = parseInt($id("subaccountX"+preffix).value,10);
		
		if(!isNaN(internalCount) && internalCount != 0){
			price += internalCount*basketItems["internal"].prices[0];
			SignUpWindow.basketItems.push({itemId:basketItems["internal"].basketItem,quantity:internalCount});
		}
		if(!isNaN(advancedexternalCount) && advancedexternalCount != 0){
			SignUpWindow.basketItems.push({itemId:basketItems["advancedexternal"].basketItem,quantity:advancedexternalCount});
			
			for(var i=0;i<talocations.childNodes.length;++i)
				if(talocations.childNodes[i].checked){
					talocCounts++;
					SignUpWindow.basketItems.push({itemId:basketItems[talocations.childNodes[i].value].basketItem,quantity:1});
			}
			if(talocCounts == 0){
				showHelp(Framework.Lang.Help.AdvancedExternalLocationERRORMessage_key);
				return false;
			}
			price += advancedexternalCount * talocCounts * basketItems[advancedexternalfrequency].prices[0];
			SignUpWindow.basketItems.push({itemId:basketItems[advancedexternalfrequency].basketItem,quantity:advancedexternalCount * talocCounts});	
		}
		if(!isNaN(transactionCount) && transactionCount != 0){
			SignUpWindow.basketItems.push({itemId:basketItems["transaction"].basketItem,quantity:transactionCount});
			
			for(var i=0;i<tlocations.childNodes.length;++i)
				if(tlocations.childNodes[i].checked){
					tlocCounts++;
					SignUpWindow.basketItems.push({itemId:basketItems[tlocations.childNodes[i].value].basketItem,quantity:1});
			}
			if(tlocCounts == 0){
				showHelp(Framework.Lang.Help.TLocationERRORMessage_key);
				return false;
			}
			price += transactionCount * tlocCounts * basketItems[transactionfrequency].prices[0];
			SignUpWindow.basketItems.push({itemId:basketItems[transactionfrequency].basketItem,quantity:transactionCount * tlocCounts});	
		}
		if(!isNaN(vtCount) && vtCount != 0){
			price += vtCount*basketItems["vt"].prices[0];
			SignUpWindow.basketItems.push({itemId:basketItems["vt"].basketItem,quantity:vtCount});
		}
		if(!isNaN(smsCount) && smsCount != 0){
			price += smsCount*basketItems["sms"].prices[0];
			SignUpWindow.basketItems.push({itemId:basketItems["sms"].basketItem,quantity:smsCount});
		}
		if(!isNaN(subaccountsCount) && subaccountsCount != 0){
			price += subaccountsCount*basketItems["subaccounts"].prices[0];
			SignUpWindow.basketItems.push({itemId:basketItems["subaccounts"].basketItem,quantity:subaccountsCount});
			SignUpWindow.basketItems.push({itemId:ppBasketItemId,quantity:1});
		}
		
		if(api.checked){
			price += basketItems["API"].prices[0];
			SignUpWindow.basketItems.push({itemId:basketItems["API"].basketItem,quantity:1});
		}
		
		if(!isNaN(ec2Count) && ec2Count != 0){
			price += ec2Count*basketItems["EC2"].prices[0];
			SignUpWindow.basketItems.push({itemId:basketItems["EC2"].basketItem,quantity:ec2Count});
		}
		
		if(!isNaN(s3Count) && s3Count != 0){
			price += s3Count*basketItems["s3"].prices[0];
			SignUpWindow.basketItems.push({itemId:basketItems["s3"].basketItem,quantity:s3Count});
		}
		
		
		if(SignUpWindow.basketItems.length > 0){
			SignUpWindow.basketItems.push({itemId:basketItems["weekly"].basketItem,quantity:1});
			SignUpWindow.basketItems.push({itemId:basketItems["history"].basketItem,quantity:1});
			SignUpWindow.basketItems.push({itemId:basketItems["report"].basketItem,quantity:1});
			SignUpWindow.basketItems.push({itemId:basketItems["vtreport"].basketItem,quantity:1});
		}
		
		var monthlyPrice = price;
		var yearlyPrice = price*12;
		if(preffix==""){
			yearlyPrice = yearlyPrice*0.8;
			$id("priceXm"+preffix).innerHTML = "$" + monthlyPrice.toFixed(2) + "/month";
			$id("priceXy"+preffix).innerHTML = "$" + (yearlyPrice).toFixed(2) + "/year";
		}
		else{
			$id("priceXm"+preffix).innerHTML = "$" + price.toFixed(2) + "/month";
			$id("priceXy"+preffix).innerHTML = "$" + (price*9.6).toFixed(2) + "/year";
		}
		if(Browser.isIE && $id("profileTable")){
				$id("profileTable").style.display = "none";
				$id("profileTable").style.display = "";
			}
		return true;	
	}
	function showDispersedMonitors(){
		var txt = "<div style='padding:4px;width:250px'><div><b>Monitis External Monitors</b> check your online services, simulating end-user behavior and testing functionality and response time, ultimately measuring web customer satisfaction. Checks HTTP/HTTPS GET/POST, PING, TCP, UDP, POP3, IMAP, SMTP, FTP, VOIP, DNS, MySQL, string matching.</div";
		txt += "<div><b>Monitis Internal Monitors</b> are installable agents that check IT systems health, system resource usage and Intranet applications performance.</div>";
		txt += "<div><b>Monitis Traffic Watch</b> counts the number of visits to your Web site and provides real time Web site usage statistics, such as unique visits, page views, demographics, browsers, referrers and keywords.</div>";
		txt += "<div><b><a target='_blank' href='http://www.semonics.com' style='color: rgb(38, 109, 222);'> Monitis Web Ranking</a></b> monitors web site online ranking indicators such as search engines keyword positioning and link popularity. Companies will increase online revenue by driving quality traffic through improved search engine visibility.</div>";
		txt += '<div><b>Monitis Transaction Monitors</b> record and check application functionality and transactional logic. At <a href="mailto:info@monitis.com" style="color: rgb(38, 109, 222);">your request</a> we provide help for tests development.</div>';
		txt += "</div>";
		
		MessageWindow.show( { header: "Types of Monitoring",
							  body: "<div style='font-size:12px'>" + txt + "</div>",
							  hideCancel: true
						});
	}

	function signInWithEnter(){
		login();
		return false;
	}


	function signUp(ev){
		if(!SignUpWindow.initialized){
			SignUpWindow.init();
			SignUpWindow.disableButton();
			
		}
		
		SignUpWindow.element = ev.target || ev.srcElement;
		SignUpWindow.showDialog(ev);
	}
	function showHelp(topic, onCloseHandler,content){
		var txt;
		if(content)
			txt = content;
		else	
		switch(topic){
			case Framework.Lang.Help.InternalMonitors_key :
						txt = Framework.Lang.Help.InternalMonitors_text;
						break;
			case Framework.Lang.Help.ExternalMonitors_key :
						txt = Framework.Lang.Help.ExternalMonitors_text;
						break;
			case Framework.Lang.Help.TransactionMonitors_key :
						txt = Framework.Lang.Help.TransactionMonitors_text;
						break;			
		  	case Framework.Lang.Help.VisitorTracking_key :
						txt = Framework.Lang.Help.VisitorTracking_text;
						break;
			case Framework.Lang.Help.MonitoringLocations_key :
						txt = Framework.Lang.Help.MonitoringLocations_text;
						break;
			case Framework.Lang.Help.MonitoringFrequency_key :
						txt = Framework.Lang.Help.MonitoringFrequency_text;
						break;
			case Framework.Lang.Help.SMS_key : 
						txt = Framework.Lang.Help.SMS_text;
						break;
			case Framework.Lang.Help.WeeklySummaryReports_key :
						txt = Framework.Lang.Help.WeeklySummaryReports_text;
						break;
			case Framework.Lang.Help.BackLink_key : 
						txt = Framework.Lang.Help.BackLink_text;
						break;
			case Framework.Lang.Help.History_key : 
						txt = Framework.Lang.Help.History_text;
						break;  
			case Framework.Lang.Help.PhoneNumberFormat_key :
						txt = Framework.Lang.Help.PhoneNumberFormat_text;
						break;
			case Framework.Lang.Help.PortablePhoneNumber_key :
						txt = Framework.Lang.Help.PortablePhoneNumber_text;
						break;
			case Framework.Lang.Help.EmailContact_key : 
						txt = Framework.Lang.Help.EmailContact_text;
						break;
			case Framework.Lang.Help.SendWeeklyReport_key : 
						txt = Framework.Lang.Help.SendWeeklyReport_text;
						break;
			case Framework.Lang.Help.IMContact_key : 
						txt = Framework.Lang.Help.IMContact_text;
						break;
			case Framework.Lang.Help.EmailIMNotifications_key : 
						txt = Framework.Lang.Help.EmailIMNotifications_text;
						break;
			case Framework.Lang.Help.SMSActivation_key :
						txt = Framework.Lang.Help.SMSActivation_text;
						break;
			case Framework.Lang.Help.Upgrade_key: 
						txt = Framework.Lang.Help.Upgrade_text;
						break;
			case Framework.Lang.Help.Server_key:
						txt = Framework.Lang.Help.Server_text;
						break;
			case Framework.Lang.Help.ConfirmEmail_key:
						txt = Framework.Lang.Help.ConfirmEmail_text;
						break;
			case Framework.Lang.Help.ConfirmIM_key:
						txt = Framework.Lang.Help.ConfirmIM_text;
						break;
			case Framework.Lang.Help.ConfirmMobileNumber_key:
						txt = Framework.Lang.Help.ConfirmMobileNumber_text;
						break;
			case Framework.Lang.Help.SubAccounts_key : 
						txt = Framework.Lang.Help.SubAccounts_text;
						break;		
			case Framework.Lang.Help.Trial_key : 
						txt = Framework.Lang.Help.Trial_text;				
						break;
			case Framework.Lang.Help.Maintenance_key : 
						txt = Framework.Lang.Help.Maintenance_text;				
						break;
			case Framework.Lang.Help.RecentAlerts_key :
						txt = Framework.Lang.Help.RecentAlerts_text;
						topic =Framework.Lang.Help.RecentAlerts_title;
						break;
			case Framework.Lang.Help.TopData_key :
						txt = Framework.Lang.Help.TopData_text;
						topic = Framework.Lang.Help.TopData_title;
						break;
			case Framework.Lang.Help.oneMail_key:
						txt = Framework.Lang.Help.oneMail_text;
						break;
			case Framework.Lang.Help.MailFrom_key:
						txt = Framework.Lang.Help.MailFrom_text;
						break;			
			case Framework.Lang.AddMaintenance_test : 
						txt = Framework.Lang.AddMaintenance_test_help;				
						break;
			case Framework.Lang.AddMaintenance_tag : 
						txt = Framework.Lang.AddMaintenance_tag_help;				
						break;		
			case Framework.Lang.Tag : 
						txt = Framework.Lang.Tag_help;			
						break;		
			case Framework.Lang.checkText : 
						txt = Framework.Lang.checkText_help;		
						break;	
			case Framework.Lang.AddTest_url : 
						txt = Framework.Lang.AddTest_url_help;		
						break;			
			case Framework.Lang.CheckFrom : 
						txt = Framework.Lang.CheckFrom_help;		
						break;		
			case Framework.Lang.AddTest_checkInterval : 
						txt = Framework.Lang.AddTest_checkInterval_help;		
						break;
			case Framework.Lang.Help.EventLogHost_key : 
						txt = Framework.Lang.Help.EventLogHost_text;				
						break;
			case Framework.Lang.Help.Monifox_key : 
						txt = Framework.Lang.Help.Monifox_text;				
						break;	
			case Framework.Lang.Help.API_key :
						txt = Framework.Lang.Help.API_text;
						break;	
			case Framework.Lang.Help.Timeout_key : 
						txt = Framework.Lang.Help.Timeout_text;				
						break;																	
			case Framework.Lang.Help.WarningAlerts_key : 
						txt = Framework.Lang.Help.WarningAlerts_text;				
						break;		
			case Framework.Lang.Help.BrowserAgent_key : 
						txt = Framework.Lang.Help.BrowserAgent_text;				
						break;																										
			case Framework.Lang.Help.EC2_key : 
						txt = Framework.Lang.Help.EC2_text;
						break;
			case Framework.Lang.Help.AWSAccountName_key :
						txt = Framework.Lang.Help.AWSAccountName_text;
						break;
			case Framework.Lang.Help.AWSAccountNameAddNew_key :
				txt = Framework.Lang.Help.AWSAccountNameAddNew_text;
				break;						
			case Framework.Lang.Help.AWSAccountNumber_key :
						txt = Framework.Lang.Help.AWSAccountNumber_text;
						break;
			case Framework.Lang.Help.AWSAccessKey_key :
						txt = Framework.Lang.Help.AWSAccessKey_text;
						break;
			case Framework.Lang.Help.AWSSecretKey_key :
						txt = Framework.Lang.Help.AWSSecretKey_text;
						break;
			case Framework.Lang.Help.EC2Region_key :
						txt = Framework.Lang.Help.EC2Region_text;
						break;
			case Framework.Lang.Help.EC2PrivateKeys_key :
						txt = Framework.Lang.Help.EC2PrivateKeys_text;
						break;
			case Framework.Lang.Help.EC2ExternalPolicy_key :
						txt = Framework.Lang.Help.EC2ExternalPolicy_text;
						break;
			case Framework.Lang.Help.EC2InternalPolicy_key :
						txt = Framework.Lang.Help.EC2InternalPolicy_text;
						break;
			case Framework.Lang.Help.EC2MaxLoad_key : 
						txt = Framework.Lang.Help.EC2MaxLoad_text;
						break;	
			case Framework.Lang.Help.PublicReport_key : 
						txt = Framework.Lang.Help.PublicReport_text;
						break;			
			case Framework.Lang.Help.PublicReportLogo_key:
						txt = Framework.Lang.Help.PublicReportLogo_text;
						break;
			case Framework.Lang.Help.PublicReportLink_key :
						txt = Framework.Lang.Help.PublicReportLink_text;
						break;			
			case Framework.Lang.Help.DowntimeDueToMaintenance_key:
						txt = Framework.Lang.Help.DowntimeDueToMaintenance_text;
						break;																											
			case Framework.Lang.Help.LocationERRORMessage_key:
						txt = Framework.Lang.Help.LocationERRORMessage_text;
						break;
			case Framework.Lang.Help.TLocationERRORMessage_key:
						txt = Framework.Lang.Help.TLocationERRORMessage_text;
						break;
			case Framework.Lang.Help.AdvancedExternalLocationERRORMessage_key:
						txt = AdvancedExternalLocationERRORMessage_text;
						break;			
			case Framework.Lang.NotificationState_contFlag:
						txt = Framework.Lang.NotificationState_contFlag_text;
						break;	
			case Framework.Lang.NotificationState_recoverFlag:
						txt = Framework.Lang.NotificationState_recoverFlag_text;
						break;
			case Framework.Lang.NotificationState_conditionFlag:
						txt = Framework.Lang.NotificationState_conditionFlag_text;
						break;							
			case Framework.Lang.Help.MonitisAffiliateProgram_key :
						txt = "<div style='width:400px;padding:5px'>" + 
								Framework.Lang.Help.MonitisAffiliateProgram_text +
							"<a href='http://monitis.com?affiliate="+User.userId+"'>http://monitis.com?affiliate="+User.userId+"</a></div>";
							/*"<br>You will be able to track your leads and referred users here"+
							"<br><a href='http://monitis.com/administration/affiliate.jsp'>http://monitis.com/administration/affiliate.jsp</a></div>";*/
						break;	
			case Framework.Lang.Help.Android_key :
				    txt = Framework.Lang.Help.Android_text;				
					break;
			case Framework.Lang.Cloud.Rackspace.accountName :
					txt = Framework.Lang.Help.RackspaceAccountName_text;
					break;
			case Framework.Lang.Cloud.GoGrid.accountName :
				txt = Framework.Lang.Help.GoGridAccountName_text;
				break;							
			case Framework.Lang.LoadTester.node_count:
				    txt=Framework.Lang.LoadTester.node_count_help;				
					break;
			case Framework.Lang.LoadTester.duration:
			       txt=Framework.Lang.LoadTester.duration_help;				
				break;
			case Framework.Lang.LoadTester.connections_per_node:
			       txt=Framework.Lang.LoadTester.connections_per_node_help;				
				break;
			case Framework.Lang.LoadTester.node_location:
			       txt=Framework.Lang.LoadTester.node_location_help;				
				break;
			case Framework.Lang.LoadTester.include_embedded_resources:
			       txt= Framework.Lang.LoadTester.include_embedded_resources_help;				
				break;
			case Framework.Lang.agent.httpMatch:
			    txt=Framework.Lang.agent.httpMatch_help;				
				break;
			case Framework.Lang.agent.httpPostData:
			    txt=Framework.Lang.agent.httpPostData_help;				
				break;				
			case Framework.Lang.agent.httpUserAuth:
			    txt=Framework.Lang.agent.httpUserAuth_help;				
				break;
			case Framework.Lang.agent.httpPassAuth:
			    txt=Framework.Lang.agent.httpPassAuth_help;				
				break;
			case Framework.Lang.agent.httpTimeout:
			    txt=Framework.Lang.agent.httpTimeout_help;				
				break;
			case Framework.Lang.agent.httpSSL:
			    txt=Framework.Lang.agent.httpSSL_help;				
				break;
			case Framework.Lang.agent.httpRedirect:
			    txt=Framework.Lang.agent.httpRedirect_help;				
				break;
			case Framework.Lang.agent.httpLoadFullPage:
			    txt=Framework.Lang.agent.httpLoadFullPage_help;				
				break;
			case Framework.Lang.agent.httpMatchFound:
			    txt=Framework.Lang.agent.httpMatchFound_help;				
				break;
			case Framework.Lang.agent.httpMethod:
			    txt=Framework.Lang.agent.httpMethod_help;				
				break;				
				
		}
		MessageWindow.show( { header: topic,
							  body: "<div style='font-size:12px'>" + txt + "</div>",
							  hideCancel: true,
							  onCloseHandler: onCloseHandler
						});
		
	}
	function chooseCycle(val,plan){
		$id("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", "Custom", "Custom", "Custom", "Web Pro", "Custom", "Webmaster Unlimited 1", "Custom", "Personal+", "Basic+"];
plans[25] = "TRIAL";
plans[641] = "Basic Retail";
plans[642] = "Gold Retail";
plans[643] = "Platinum Retail";
var prices = ["1.28$/month","12.29$/year",//0
			  "9.98$/month","95.80$/year",//1
			  "39.98$/month","383.80$/year",//2
			  "FREE","Custom",//3
			  "Custom","Custom",//4
			  "Custom","Custom",//5
			  "Custom","Custom",//6
			  "49.98$/month","479.80$/year",//7
			  "349$/month","Custom",//8
			  "49.98$/year","479.80$/year",//9
			  "Custom","Custom",//10
			  "4.98$/month","47.80$/year",//11
			  "19.98$/month","191.80$/year"//12
			  ];
prices[641*2+1]="225$/year";
prices[642*2+1]="1800$/year";
prices[643*2+1]="4050$/year";			  
			  
var subAccountSettings = {  7:{basketItem:37,prices:[3,28.8]},
							2:{basketItem:37,prices:[3,28.8]},
							12:{basketItem:39,prices:[2,19.2]},
							1:{basketItem:40,prices:[1,9.6]},
							641:{basketItem:37,prices:[3,28.8]},
							642:{basketItem:37,prices:[3,28.8]},
							643:{basketItem:37,prices:[3,28.8]}
						 };
var ppBasketItemId = 38;
var basketItems = {
					"external" : 	{basketItem:41,prices:[0,0]},
					"internal" : 	{basketItem:42,prices:[0.5,4.8]},
					"transaction" : {basketItem:43,prices:[0,0]},
					"20min-transaction" : {basketItem:70,prices:[20,192]},
					"15min-transaction" : {basketItem:69,prices:[40,384]},
					"10min-transaction" : {basketItem:68,prices:[60,576]},
					"5min-transaction" : {basketItem:67,prices:[80,768]},
					"vt" : 			{basketItem:44,prices:[3,28.8]},
					"US" : 			{basketItem:61,prices:[0,0]},
					"UK" : 			{basketItem:45,prices:[0,0]},
					"PA" : 			{basketItem:46,prices:[0,0]},
					"AU" : 			{basketItem:47,prices:[0,0]},
					"DE" : 			{basketItem:48,prices:[0,0]},
					"CN" : 			{basketItem:62,prices:[0,0]},
					"US-East" :		{basketItem:64,prices:[0,0]},
					"US-West" :		{basketItem:79,prices:[0,0]},
					"NL":			{basketItem:83,prices:[0,0]},
					"ES":			{basketItem:104,prices:[0,0]},
					"SG":			{basketItem:105,prices:[0,0]},
					"1min" : 		{basketItem:49,prices:[0.4,3.84]},
					"3min" : 		{basketItem:50,prices:[0.3,2.88]},
					"5min" : 		{basketItem:51,prices:[0.25,2.4]},
					"10min" : 		{basketItem:52,prices:[0.2,1.92]},
					"15min" : 		{basketItem:53,prices:[0.15,1.44]},
					"sms" : 		{basketItem:54,prices:[0.2,1.92]},
					"weekly" : 		{basketItem:55,prices:[0,0]},
					"history" : 	{basketItem:56,prices:[0,0]},
					"report" : 		{basketItem:57,prices:[0,0]},
					"vtreport" : 	{basketItem:58,prices:[0,0]},
					"subaccounts":  {basketItem:39,prices:[2,19.2]},
					"API":  		{basketItem:59,prices:[5,48]},
					"EC2":			{basketItem:60,prices:[5,48]},
					"s3":			{basketItem:66,prices:[2,19.2]},
					"T_US_L" :		{basketItem:74,prices:[0,0]},
					"T_DE_L" :		{basketItem:75,prices:[0,0]},
					"T_US_W" :		{basketItem:76,prices:[0,0]},
					"T_UK_W" :		{basketItem:77,prices:[0,0]},
					"T_HK_W" :		{basketItem:78,prices:[0,0]},
					"T_AU_L" :		{basketItem:80,prices:[0,0]},
					"T_BR_W" :		{basketItem:81,prices:[0,0]},
					"T_NL_L" :		{basketItem:84,prices:[0,0]},
					"T_US2_W":		{basketItem:98,prices:[0,0]},
					"T_US2_L":		{basketItem:100,prices:[0,0]},
					"T_SG_L":		{basketItem:106,prices:[0,0]},
					"T_ES_L":		{basketItem:107,prices:[0,0]},
					"advancedexternal" : {basketItem:85,prices:[0,0]},
					"20min-advancedexternal" : {basketItem:86,prices:[5,48]},
					"15min-advancedexternal" : {basketItem:87,prices:[10,96]},
					"10min-advancedexternal" : {basketItem:88,prices:[15,144]},
					"5min-advancedexternal" : {basketItem:89,prices:[20,192]},
					"T_US_L_A" :		{basketItem:90,prices:[0,0]},
					"T_DE_L_A" :		{basketItem:91,prices:[0,0]},
					"T_US_W_A" :		{basketItem:92,prices:[0,0]},
					"T_UK_W_A" :		{basketItem:93,prices:[0,0]},
					"T_HK_W_A" :		{basketItem:94,prices:[0,0]},
					"T_AU_L_A" :		{basketItem:95,prices:[0,0]},
					"T_BR_W_A" :		{basketItem:96,prices:[0,0]},
					"T_NL_L_A" :		{basketItem:97,prices:[0,0]},
					"T_US2_W_A":		{basketItem:99,prices:[0,0]},
					"T_US2_L_A":		{basketItem:101,prices:[0,0]},
					"T_SG_L_A":		    {basketItem:108,prices:[0,0]},
					"T_ES_L_A":		    {basketItem:109,prices:[0,0]}
				  }; 
function getPlan(plan){
	if(plan<plans.length && plans[plan])
		return plans[plan];
	return "Custom";
}

function getPrice(plan, cycle){
	var index = cycle + plan*2;
	if(index<prices.length && prices[index]){
		var subAccountCount = 0;
		var subAccountPrice = 0;
		if(subAccountSettings[plan] && User.items[subAccountSettings[plan].basketItem]){
			subAccountCount = User.items[subAccountSettings[plan].basketItem].itemCount;
			subAccountPrice = subAccountSettings[plan].prices[cycle]*subAccountCount;
			}
			var parts = prices[index].split("$");
			var planPrice = parseFloat(parts[0]);	
			return (planPrice+subAccountPrice).toFixed(2)+"$" + parts[1]; 
		}
	return "Custom";
}

var cycles = ["M", "Y"];
var cycleNames = ["Monthly", "Yearly"];

SignUpWindow = function(){
    var signUpDialog, showBtn, action, isResized = false;
	var firstName, lastName, eMail, pass, rePassword;
	var signupCompanyName,signupCountry,signupMobilePhone;
	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;
 
	
			var inner = "";
		    //inner += '<div id="signUp-dlg"  class="unvisible">';
			inner += '	<div class="x-window-header">Sign Up</div>';
			inner += '	<div class="x-window-body ExtWindowBody" >';
			inner += '		<div id="signUp_error_part"><ul style="margin:2px;"><li></li></ul></div>';
			inner += '		<div id="signUpWindowBody">';
			inner += '			<form id="signupFORM" action="" style=" overflow: hidden">';
			inner += '				<table cellpadding="3" cellspacing="2" class="text" style="margin:8px;width:90%"><tbody>';
		    inner += '					<tr>';
			inner += '						<td colspan="3" style="font-size:12px;padding-bottom:6px;text-align: justify;">To register for an account, please fill out the form below.</td>';
			inner += '					</tr>';
			inner += '					<tr>';
			inner += '						<td class="formLabelWrap4SingUp" >Plan :</td>';
			inner += '						<td id="signupPlan" class="plan"></td>';
			inner += '						<td></td>';
			inner += '					</tr>';
			inner += '					<tr>';
			inner += '						<td class="formLabelWrap4SingUp" >First Name :</td>';
			inner += '						<td><input type="text" id="sfname" allowBlank="false" style="width:157px" /></td>';
			inner += '						<td>*</td>';
			inner += '					</tr>';
			
			inner += '					<tr>';
			inner += '						<td class="formLabelWrap4SingUp" >Last Name :</td>';
			inner += '						<td><input type="text" id="slname" allowBlank="false" style="width:157px"   /></td>';
			inner += '						<td>*</td>';
			inner += '					</tr>';
			inner += '					<tr>';
			inner += '						<td class="formLabelWrap4SingUp" >Email :</td>';
			inner += '						<td><input type="text" id="smail" allowBlank="false" style="width:157px" vtype="email"   /></td>';
			inner += '						<td>*</td>';
			inner += '					</tr>';
			inner += '					<tr>';
			inner += '						<td class="formLabelWrap4SingUp" >Password :</td>';
			inner += '						<td><input type="password" id="spass"  allowBlank="false" style="width:157px" /></td>';
			inner += '						<td id="passwordImg">*</td>';
			inner += '					</tr>';
			
			inner += '					<tr>';
			inner += '						<td class="formLabelWrap4SingUp" >Retype Password :</td>';
			inner += '						<td><input type="password" id="srepass"   allowBlank="false" style="width:157px" /></td>';
			inner += '						<td id="repasswordImg">*</td>';
			inner += '					</tr>';
			inner += '<tr><td class="formLabelWrap4SingUp">Company:</td><td><input type="text" id="company" value="" style="width:157px" /></td><td>&nbsp;</td></tr>'+
					'<tr><td class="formLabelWrap4SingUp">Country:</td><td><select id="country" width="157px" allowBlank=false>'+countrySelectInnerHTML+'</select></td><td>&nbsp;</td></tr>'+
					'<tr><td class="formLabelWrap4SingUp">Phone number:</td><td><input type="text" id="phoneNumber" value="" style="width:157px" /></td><td>&nbsp;</td></tr>';
			inner += '					<tr id="not4free">';
			inner += '<td class="formLabelWrap4SingUp" >Payment method :</td>';
			inner += '<td><select name="paymentMethod" width="157px" id="paymentMethodSelect"><option value="paypal" selected>PayPal</option><option value="amazon">Amazon Payments</option><option value="2check_paylater">PayLater</option><option value="2check_digital">Digital Check</option><option value="2check_fxsource">FXSource</option><option value="2check_visa">VISA</option><option value="2check_mc">MasterCard</option><option value="2check_express">American Express</option><option value="2check_discover"> Discover/Novus</option><option value="2check_diners">Diners Club</option></select>';
			//<input type="radio" name="paymentMethod" value="paypal" style="vertical-align:super" checked><img src="http://images.paypal.com/images/x-click-but20.gif" alt="" style="padding-left:5px;padding-right:10px" /></input><input value="2check" style="vertical-align:super" type="radio" name="paymentMethod"><img src="images/homePage/2co.jpg" alt="" style="padding-left:5px" /></input></td>';
			inner += '						<td></td>';
			inner += '					</tr>';
			inner += '					<tr id="not4free1">';
			inner += '						<td class="formLabelWrap4SingUp" >Billing cycle :</td>';
			inner += '						<td class="formLabelWrap4SingUp" id="signupCycle"><select id="signupCycleSelect" width="157px"><option value=0>Monthly</option><option value=1>Yearly</option></select></td>';
			inner += '						<td></td>';
			inner += '					</tr>';
			inner += '					<tr id="subAccountTr">';
			inner += '						<td class="formLabelWrap4SingUp" >Sub-accounts :</td>';
			inner += '						<td class="formLabelWrap4SingUp"><input type="text" id="subAccountNumber" vtype="num" style="width:157px" value=0 allowBlank=false allowDecimals=false /></td>';
			inner += '						<td><img style="cursor: pointer; padding-left: 5px;" onclick="showHelp(\'' + Framework.Lang.Help.SubAccounts_key + '\')" src="images/homePage/Help.gif"/></td>';
			inner += '					</tr>';
			inner += '					<tr>';
			inner += '						<td class="formLabelWrap4SingUp" >Coupon :</td>';
			inner += '						<td class="formLabelWrap4SingUp" colspan=3><input type="text" id="coupon" value="" style="width:157px" /><span id="couponNote" style="display:none;font-size:10px">Please enter your code during payment</span></td>';
			inner += '						<td></td>';
			inner += '					</tr>';
			inner += '					<tr id="not4free2">';
			inner += '						<td class="formLabelWrap4SingUp" style="padding-top:5px;">Total price :</td>';
			inner += '						<td id="signupPrice" class="plan"></td>';
			inner += '						<td></td>';
			inner += '					</tr>';
			inner += '					<tr>';
			inner += '						<td style="padding-top:12px;width:350px;font-size:12px" colspan="3"><input type="checkbox"  onchange="TOSChecked(this);" id="termCheckbox" /><span>I agree to Monitis.com <a href="terms.html" target="_blank" style="color: #3c9bcb;">terms of service</a></span></td>';
			inner += '						<td></td>';
			inner += '					</tr>';
			inner += '					<tr>';
			inner += '						<td colspan="3" class="lock">Any personal data submitted is kept confidential. Please see our <a href="privacy.html" target="_blank" style="color: #3c9bcb; ">privacy policy</a>  for more information.</td>';
			inner += '					</tr>';
				
			inner += '				</tbody></table>';
			inner += '			</form>';
			
			inner += '		</div>';
			inner += '	</div>';
			//inner += '</div>';

   			var div = document.createElement( "DIV");
			div.id = 'signUp-dlg';
			div.innerHTML = inner;
			document.body.appendChild( div );
			
			changeFormStyle(div, true, true, false, true, false,false);
			$id("subAccountNumber").onkeyup=SignUpWindow.calculateTotalPrice;$id("subAccountNumber").onblur=SignUpWindow.calculateTotalPrice;

			signUpDialog = new Ext.Window({
                modal: true,
				closeAction: 'hide',
				collapsible: true,
                width: 360,
                height: 560,
				resizable: false,
				draggable: false,
			    keys: [{
			        key: 27,  // hide on Esc
			        fn: function(){
			            signUpDialog.hide();
			        }
			    }]				
			});

            SignUpWindow.signUpDialog = signUpDialog;
            signUpDialog.addListener("beforehide",SignUpWindow.reset);
 			signUpDialog.addButton('Submit', this.actionHandler, action);
			
			signUpDialog.applyToMarkup("signUp-dlg");

			imgPass1 = $id("passwordImg");imgPass2 = $id("repasswordImg");
			firstName = $id("sfname");lastName = $id("slname");
			eMail = $id("smail");
			signupCompanyName = $id("company");
			signupCountry = $id("country",true);
			signupMobilePhone = $id("phoneNumber");
			pass = $id("spass");rePassword = $id("srepass");
			//imNum =$id("sim");imType = $id("simType", true);
			cicleInput = $id("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","","Email");
			var accounttype = SignUpWindow.element.getAttribute("plan");
			if(accounttype == 4 && SignUpWindow.basketItems.length == 0) 
				validate = "Please, build your plan first";
			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 = $id("simType", true).getValue();
					var email = encode(eMail.value);SignUpWindow.eMail = email;
					var password = encode( pass.value);SignUpWindow.password = password;
					var company = encode(signupCompanyName.value.trim());
					var country = signupCountry.getValue();
					var phoneNumber = encode(signupMobilePhone.value.trim());
						
					var cycle = SignUpWindow.element.getAttribute("cycle");
					var billingMethod = $id("signupFORM").paymentMethod.value.substring(0,6);
					var coupon = encode($id("coupon").value.trim());
					var data = "type=signUp&email="+email+"&password="+password+"&timezone="+(-new Date().getTimezoneOffset())+"&fname="+fname+"&lname="+lname+"&im=&mobphone=&imtype=1&cycle="+cycles[cycle]+"&billingMethod="+billingMethod+"&coupon="+coupon+"&"+(company!=""?"company="+company+"&":"")+(country!=""?"country="+country+"&":"")+(phoneNumber!=""?"phoneNumber="+phoneNumber+"&":"")+(Framework.enterprise?"enterprise="+Framework.enterprise+"&":"");;					
					
					if(accounttype != 4){
					var subAccountNumb = parseInt($id("subAccountNumber",true).getValue());
					if(isNaN(subAccountNumb)){
						subAccountNumb = 0;
					}
					
					//var key = imageCode.value;
					data+="&itemId=" + accounttype+"&itemCount_"+accounttype+"="+1;
					if(subAccountNumb > 0){
						data+="&itemId=" + subAccountSettings[accounttype].basketItem+"&itemCount_"+subAccountSettings[accounttype].basketItem+"="+subAccountNumb;
						data+="&itemId=" + ppBasketItemId+"&itemCount_"+ppBasketItemId+"="+1;
					}
					}
					else{
						for(var j=0;j<SignUpWindow.basketItems.length;++j)
							data+="&itemId=" + SignUpWindow.basketItems[j].itemId+"&itemCount_"+SignUpWindow.basketItems[j].itemId+"="+SignUpWindow.basketItems[j].quantity;
					}
					SignUpWindow.info( Framework.Lang.checking+"...");
					if(document.referrer && document.referrer.indexOf("portal.monitis.com") == -1)
						document.cookie="referrer=" + document.referrer + "; path=/;";
					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{
				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){
							$id("paypalsignupform").innerHTML = responseChildNodes[1].firstChild.nodeValue;
							$id("paypalsignupform").firstChild.submit();
						}
						SignUpWindow.enableButton();
						SignUpWindow.removeErrorPart();
						SignUpWindow.hide();
						var link = 'Congratulations, you have successfully subscribed. 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 for payment in a several seconds <span  onclick='$id(\"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();
			}
		},
		paymentMethodChanged:function(){
			if($id("paymentMethodSelect", true).getValue().indexOf("2check") != -1){
					$id("couponNote").style.display = "";
					$id("coupon").style.display = "none";
			}
			else{
					$id("couponNote").style.display = "none";
					$id("coupon").style.display = "";
			}
			
		},
		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"));
			var cycle = parseInt(SignUpWindow.element.getAttribute("cycle"));
			signUpDialog.setSize(460,515);
			$id("signupPlan").innerHTML = "<span class='"+plans[plan].substring(0,3)+"_plan'>"+plans[plan]+"</span>";
			//$id("signupCycle").innerHTML = cycleNames[cycle];
			var cycleHTML = "<select width='157px' id='signupCycleSelect'>";
			var monthlyPrice = 0;
			if($id("priceXm"))
				monthlyPrice = parseFloat($id("priceXm").innerHTML.substring(1,$id("priceXm").innerHTML.indexOf("/")));
			var yearlyPrice = 0;
			if($id("priceXy"))
				yearlyPrice = parseFloat($id("priceXy").innerHTML.substring(1,$id("priceXm").innerHTML.indexOf("/")));
			for(var i=(plan==4 && monthlyPrice<5? 1 :0);i<cycleNames.length;++i)
				cycleHTML += "<option value="+ i+ " >" + cycleNames[i] + "</option>";
			cycleHTML += "</select>";
			$id("signupCycle").innerHTML = cycleHTML;
			changeFormStyle($id("signupCycle").parentNode, false, true);
			$id("paymentMethodSelect", true).addListener("select",SignUpWindow.paymentMethodChanged);
			$id("signupCycleSelect", true).addListener("select",SignUpWindow.calculateTotalPrice);
			$id("signupCycleSelect", true).setValue(cycle);
			signupCountry.setValue(signupCountry.getValue());
			SignUpWindow.calculateTotalPrice(); // set value will not cause the select event fire
			 $id("not4free").childNodes[1].firstChild._ext_object.setValue("paypal");
			if(plan == 11 || plan == 4 || plan == 25) // Personal+ or Custom or TRIAL 
				$id("subAccountTr").style.display = "none";
			else
				$id("subAccountTr").style.display = "";
			if(plan == 25){
				$id("not4free").style.display = "none";
				$id("not4free1").style.display = "none";
				$id("not4free2").style.display = "none";
			}
			else{
				$id("not4free").style.display = "";
				$id("not4free1").style.display = "";
				$id("not4free2").style.display = "";
			}
			if(plan == 4){
				if(!calculateCustomPrice()) return;
				if(yearlyPrice < 15){
					MessageWindow.show( { header: Framework.Lang.message,
								  body: "Dear Customer, our minimum commitment fee is 5 USD / per month or 15 USD per year.",
								  hideCancel: true
						});
					return;
				}
				
			}
			$id("termCheckbox").checked = true;
			$id("termCheckbox").changeValue(false);
			signUpDialog.show(ev);
			TOSChecked($id("termCheckbox"));
		},
		calculateTotalPrice:function(){
			var cycle =  parseInt($id("signupCycleSelect", true).getValue());
			var plan = SignUpWindow.element.getAttribute("plan");
			if(plan == 25) return;
			SignUpWindow.element.setAttribute("cycle", cycle);
			if(plan != 4){ // Custom plan
			var subAccountNumb = parseInt($id("subAccountNumber",true).getValue());
			var subAccountPrice = 0;
			if(isNaN(subAccountNumb)){
				subAccountNumb = 0;
			}
			if(subAccountSettings[plan])
				subAccountPrice = subAccountSettings[plan].prices[cycle]*subAccountNumb;
			var parts = prices[cycle + 2*plan].split("$");
			var planPrice = parseFloat(parts[0]);	
			$id("signupPrice").innerHTML = "<span class='"+plans[plan].substring(0,3)+"_plan'>"+(planPrice+subAccountPrice).toFixed(2)+"$" + parts[1]+"</span>";
			}
			else{
				$id("signupPrice").innerHTML = "<span class='"+plans[plan].substring(0,3)+"_plan'>"+(cycle == 0 ? $id("priceXm").innerHTML : $id("priceXy").innerHTML)+"</span>";
				
			}
			
		},
		resizeTo: function( width, height ){
			signUpDialog.setSize( width, height );
		},

	    reset: function(){
			$id("signupFORM").reset();
			$id("passwordImg").innerHTML = "*";
			$id("repasswordImg").innerHTML = "*";
			$id("sfname", true ).reset();
			$id("slname", true ).reset();
			$id("smail", true ).reset();
			$id("spass", true ).reset();
			$id("srepass", true ).reset();
			SignUpWindow.enableButton();
	    },

		putImage: function(){
			if(!imageLoad){
				$id("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 )	$id("signUp_error_part").firstChild.innerHTML = "";
			if( typeof( errorMessages ) == "string" ) errorMessages = [ errorMessages ];

			for( var i=0; i<errorMessages.length; i++ )
				$id("signUp_error_part").firstChild.innerHTML += "<li >" +errorMessages[i] + "</li>";
			$id("signUp_error_part").style.display = "block";
			$id("signUp_error_part").className = type;

			try{
				if( !isResized ){
					isResized = true;
					signUpDialog.setSize(signUpDialog.size.width, signUpDialog.size.height + $id("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 = $id("signUp_error_part");
			try{
				if( isResized )	{
					signUpDialog.setSize(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 = encode($id("email").value);
			var password = encode($id("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){
							$id("paypalsignupform").innerHTML = responseChildNodes[1].firstChild.nodeValue;
							$id("paypalsignupform").firstChild.submit();
							var link = "Please wait... In case you're not redirected for payment in a several seconds <span  onclick='$id(\"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();
						$id("main-page-loading2").style.display = "block";
						$id("homePageContainer").style.display = "none";
						attachLinkTags();
						attachScriptTags(jsPathsArray);
						preloadimages(Framework.imageLoaderURL+"layout/small_images.gif", Framework.imageLoaderURL+"layout/icons16x16.gif");
						callControllerInit();
					}
				}
				else if(key == "waiting4Start"){
					document.getElementById("signInError").innerHTML = "Your account is not active yet, please complete your payment";
				}
				else if(key == "confirm"){
					document.getElementById("signInError").innerHTML = "Confirm your account and try again.";
				}
				else if(key == "disabled"){
					document.getElementById("signInError").innerHTML = "Sorry your account was disabled.";
				}
				else if( key == "mismatch" || key == "error"){
					document.getElementById("signInError").innerHTML = Framework.Lang.signinNoMatch;
				}else{
					document.getElementById("signInError").innerHTML = key;
				}
			}catch(ex){
			}
		}


		if(changePass1 && changePass2){
				setChangePassFunctions(changePass1,changePass2,imgChangePass1,imgChangePass2);
		}

		function setChangePassFunctions(changePass1,changePass2,imgChangePass1,imgChangePass2){
					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 = "";
				$id("signInButton").innerHTML = '<input type="image" src="images/homePage/change.gif" onclick="changePass();"/>';
				$id("chPassContainer").href = "javascript:changePassView(false)";
				$id("chPassContainer").innerHTML = "Want to login ?!";

			}else{
				document.getElementById("newpass").style.display = "none";
				document.getElementById("retypepass").style.display = "none";
				$id("signInButton").innerHTML = '<img src="images/homePage/login.gif" onclick="login();" />';
				imgChangePass1.innerHTML = "";
				imgChangePass2.innerHTML = "";
				$id("chPassContainer").href = "javascript:changePassView(true)";
				$id("chPassContainer").innerHTML = "Change password?!";
			}
		}

		function changePass(){
			var email = encode(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";
						$id("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 = "";
						$id("signInButton").innerHTML = '<input type="image" src="images/homePage/change.gif" onclick="changePass();"/>';
						$id("chPassContainer").href = "javascript:changePassView(false)";
						$id("chPassContainer").innerHTML = "Want to login ?!";
						msg.innerHTML =Framework.Lang.signinNoMatch;break;
					}
				}
		}

	function sendPasswdReq(){
		var email = encode(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";
		//$id("signInButton").innerHTML = '<a href="#signup"><img src="images/homePage/signup_blue.png" class="loginbut"/></a><img src="images/homePage/login_green.png" onclick="login();" class="loginbut"/>';
		//imgChangePass1.innerHTML = "";
		//imgChangePass2.innerHTML = "";
		msg.innerHTML = "";
	}
	function attachScriptTags(paths){
		for(var i = 0; i < paths.length; i++){
			try{
				var oScript = attachScriptTagFromPath(paths[i]);
			}catch(ex){}
		}
	}
	function attachLinkTags(){
		var paths = cssPathsArray;
		for(var i = 0; i < paths.length; i++){
			var oLink = attachLinkTagFromPath(paths[i]);
		}
	}
	
	function callControllerInit(){
			if((typeof TagManager == 'undefined' || typeof Controller == 'undefined'||typeof Layouter == 'undefined'||typeof Wizard == 'undefined' ))	{
				  setTimeout(callControllerInit,0.5);
	   		}else{
				attachScriptTags(jsPathsArrayDepended);
				
	   			callControllerInitEnd();
	   		}
	}
	function callControllerInitEnd(){
			if((typeof Framework.Modules.NoteWidget == 'undefined') || (typeof Framework.Menu == 'undefined'))	{
				  setTimeout(callControllerInitEnd,0.5);
	   		}else{
	   			Controller.init();
	   		}
	}
	function trialPassOnChange(passInput){
		passInput.el.dom.style.display = "none";
		$id(passInput.id + "_real").value = "";
		$id(passInput.id + "_real").style.display = "";
		$id(passInput.id + "_real").focus();
	}
