var mySlide = null;

function historyChange(newLocation, historyData) 
{
	if (historyData)
	{
		if (historyData == 'discount')
		{
			QS.navigate((!getCookie('disc-times') ? 'discount' : 'already-have-discount'), true);
		}
		else
		{
			QS.navigate(historyData, true);
		}
	}
	else
	{
		QS.navigate('index', true);
	}
}
	
function historyInit()
{
	dhtmlHistory.initialize();
	dhtmlHistory.addListener(historyChange);
}

var _root = document.location.host?"http://"+document.location.host+"/":"";

var QS = {
	elLoading : new Element("div", {}),

	pageAlias : "index",

	cache : [],
	blocked : false,

	preCachePages : ['discount', 'solutions', 'sol_designs', 'sol_domain', 'sol_introflash', 'sol_modules', 'sol_order', 'sol_orderform', 'sol_service', 'agreement'],

	render : function()
	{
		this.cache['index'] = $("content").innerHTML;
		for(var i=0;i<this.preCachePages.length;i++)
		{
			this.preCaching(this.preCachePages[i]);
		}
		$("counters").setOpacity(0.3);
		
		var so = new SWFObject("flash/button_opt.swf","mymovie","500","375","8","#336699");
		so.addParam("quality", "high");
		so.addParam("wmode", "transparent");
		so.write("flwLight");

		so = new SWFObject("flash/guide.swf","guideFlash","525","26","8","");
		so.addParam("quality", "high");
		so.addParam("wmode", "transparent");
		so.write("guide");

		var btn1 = new Element("div", {
			'styles' : {
				'position':'absolute',
				'width':'93px',
				'height':'93px',
				'right':'95px',
				'top':'113px',
				'background-color':'red',
				'opacity':'0.001',
				'z-index':'1000',
				'cursor':'pointer'
			},
			'events' : {
				'mouseover' : function()
				{
					$('flwLight').className="btn1flw";
				},
				'mouseout' : function()
				{
					$('flwLight').className="flwHidden";
				},
				'click' : function()
				{
					QS.navigate('solutions');
				}
			}
		});
		var btn2 = new Element("div", {
			'styles' : {
				'position':'absolute',
				'width':'93px',
				'height':'93px',
				'right':'45px',
				'top':'217px',
				'background-color':'red',
				'opacity':'0.001',
				'z-index':'1000',
				'cursor':'pointer'
			},
			'events' : {
				'mouseover' : function()
				{
					$('flwLight').className="btn2flw";
				},
				'mouseout' : function()
				{
					$('flwLight').className="flwHidden";
				},
				'click' : function()
				{
					QS.navigate('promo');
				}
			}
		});
		var btn3 = new Element("div", {
			'styles' : {
				'position':'absolute',
				'width':'93px',
				'height':'93px',
				'right':'18px',
				'top':'328px',
				'background-color':'red',
				'opacity':'0.001',
				'z-index':'1000',
				'cursor':'pointer'
			},
			'events' : {
				'mouseover' : function()
				{
					$('flwLight').className="btn3flw";
				},
				'mouseout' : function()
				{
					$('flwLight').className="flwHidden";
				},
				'click' : function()
				{
					QS.navigate('presentations');
				}
			}
		});
		var btn4 = new Element("div", {
			'styles' : {
				'position':'absolute',
				'width':'93px',
				'height':'93px',
				'right':'45px',
				'top':'449px',
				'background-color':'red',
				'opacity':'0.001',
				'z-index':'1000',
				'cursor':'pointer'
			},
			'events' : {
				'mouseover' : function()
				{
					$('flwLight').className="btn4flw";
				},
				'mouseout' : function()
				{
					$('flwLight').className="flwHidden";
				},
				'click' : function()
				{
					QS.navigate('chicago-illinois-publishing');
				}
			}
		});
		var btn5 = new Element("div", {
			'styles' : {
				'position':'absolute',
				'width':'93px',
				'height':'93px',
				'right':'84px',
				'top':'560px',
				'background-color':'red',
				'opacity':'0.001',
				'z-index':'1000',
				'cursor':'pointer'
			},
			'events' : {
				'mouseover' : function()
				{
					$('flwLight').className="btn5flw";
				},
				'mouseout' : function()
				{
					$('flwLight').className="flwHidden";
				},
				'click' : function()
				{
					QS.navigate('contact');
				}
			}
		});
		btn1.inject('btn1', 'after');
		btn2.inject('btn2', 'after');
		btn3.inject('btn3', 'after');
		btn4.inject('btn3', 'after');
		btn5.inject('btn3', 'after');
		this.elLoading.className = "loading";
		this.elLoading.style.visibility="hidden";
		this.elLoading.inject('content', 'after');
		this.elLoading.innerHTML = "<b>Loading...</b><br /><img src=\"i/9-1.gif\" />";

		Fx.CSS.Styles = ["backgroundColor", "backgroundPosition", "color", "width", "height", "left", "top", "bottom", "right", "fontSize", "letterSpacing", "lineHeight", "textIndent", "opacity"];
 
		Fx.CSS.Styles.extend(Element.Styles.padding);
		Fx.CSS.Styles.extend(Element.Styles.margin);
 
		Element.Styles.border.each(function(border){
			['Width', 'Color'].each(function(property){
				Fx.CSS.Styles.push(border + property);
			});
		});

		if (document.location.pathname.replace('/', '').replace('.html', '') == 'discount')
		{
			var so = new SWFObject("i/discount.swf?percent="+discval+"%25","jocker","380","320","8","#000");
			so.addParam("quality", "high");
			so.addParam("wmode", "transparent");
			so.addParam("allowScriptAccess","always");
			so.write("dflash");
		}
		else
		{
			var si = new SWFObject("flash/robot_opt.swf","myrobot","329","325","8","#336699");
			si.addParam("quality", "high");
			si.addParam("wmode", "transparent");
			si.write("robot");
		}

		setTimeout("QS.loadSWFdisc()", 4000);
		this.navigateCustom();
	},

	loadSWFdisc : function()
	{
		var sbt = new SWFObject("flash/disc_btn_opt.swf","db1","80","59","8","");
		sbt.addParam("quality", "high");
		sbt.addParam("wmode", "transparent");
		sbt.write("disc-button");
	},

	navigate : function (name, noHistory)
	{
		if(QS.pageAlias == name || QS.blocked) 
			return;
		QS.blocked = true;
		this.contentMorph = new Fx.Morph('content', {wait: false});
		this.contentMorph.start('opacity020');
		this.elLoading.style.visibility="visible";
		this.pageAlias=name;
		//stats
		setTimeout("pageTracker._trackPageview('/"+name+".html')", 2000);
		// try to get cached
		if(this.cache[name])
		{
			$("content").innerHTML = this.cache[name];
			QS.elLoading.style.visibility="hidden";
			QS.contentMorph.start('content');
			QS.navigateCustom();
			onLoad();
			// --
			if (!noHistory) dhtmlHistory.add(name, name);
			QS.blocked = false;
			return;
		}
		var url = _root+"html/"+name+".html?"+Math.random();
		var req = new Ajax(url, {
			method: 'get', 
			onComplete: function(){
				QS.cache[QS.pageAlias] = $("content").innerHTML = req.response.text;
				QS.elLoading.style.visibility="hidden";
				QS.contentMorph.start('content');
				QS.navigateCustom();
				onLoad();
				// --
				if (!noHistory) dhtmlHistory.add(name, name);
				QS.blocked = false;
			}
		}).request();
	},
	
	timerSetBg : null,
	navigateCustom : function()
	{
		if(QS.pageAlias!="index")
		{
			$("logo").style.cursor = "pointer";
			$("logo").onclick = function(){QS.navigate("index");return false;};
		}
		else
		{
			$("logo").style.cursor = "default";
			$("logo").onclick = function(){};
		}
		var el="";
		clearTimeout(this.timerSetBg);
		if((el=$("example")) != null)
		{
			$("example").className="first";
			this.timerSetBg = setTimeout("if($('example')) $('example').className='second'", 45000);
		}
		switch(QS.pageAlias)
		{
			case 'terms':
			case 'privacy':
				break;
			case 'index':
				break;
			case 'solutions':
				Guide.setMaxStep(4);
				Guide.currStep=0;
				break
			case 'sol_designs':
				Guide.setMaxStep(4);
				Guide.currStep=1;
				Order.exclusiveDesign = 0;
				Order.useFlashAnimation = 0;
				Tape.initCategory();
				Tape.init("Healthcare");
				break;
			case 'sol_introflash':
				Guide.setMaxStep(4);
				Guide.currStep=1;
				Order.exclusiveDesign = Settings.exclusiveDesign;
				Order.defaultModules = [0];
				break;
			case 'sol_modules':
				Guide.setMaxStep(4);
				Guide.currStep=2;
				Order.price=0;
				var els = $('solModulesList').getElementsByTagName('input');
				for (i=0;i<els.length ;i++ )
				{
					els[i].onclick = function()
					{
						Order.price=0;
						if(this.checked)
						{
							Order.modules[Order.modules.length] = QSSolutions.indexOf(this.id);
						}else{
							Order.modules.remove(QSSolutions.indexOf(this.id));
						}
						QSSolutions.render();
					}
				}
				if(el=$("solPathDesign")) {
					el.innerHTML = Order.exclusiveDesign?"custom design":"prototype design selection";
					el.onclick = Order.exclusiveDesign?function(){QS.navigate('sol_introflash');return false}:function(){QS.navigate('sol_designs');return false};
				}
				break;
			case "sol_domain":
				Guide.setMaxStep(4);
				Guide.currStep=3;
				$("solDomainResult").innerHTML=QSSolutions.tmpDomainResult;
				break;
			case "sol_service":
				Guide.setMaxStep(4);
				Guide.currStep=4;
				$('submitOrder').onclick = (Guide.nsteps[0] & Guide.nsteps[1] & Guide.nsteps[2] & Guide.nsteps[3])?function(){QS.navigate('sol_order');return false;}:function(){alert("Please complete all steps to submit order");return false;};
				break;
			case "sol_order":
				Guide.setMaxStep(5);
				Guide.currStep=5;
				Order.orderHTML = $("solOrderForm").innerHTML.trim();

				break;
			case "sol_orderform":
				Guide.setMaxStep(6);
				Guide.currStep=6;
				break;
			case "present_example1":
				var si = new SWFObject("flash/present/galaxy.swf","present","360","336","8","#336699");
				si.addParam("quality", "high");
				si.addParam("wmode", "transparent");
				si.write("example");
				break;
			case "present_example2":
				var si = new SWFObject("flash/present/phone.swf","present","360","336","8","#336699");
				si.addParam("quality", "high");
				si.addParam("wmode", "transparent");
				si.write("example");
				break;
			case "present_example3":
				var si = new SWFObject("flash/present/api.swf","present","360","336","8","#336699");
				si.addParam("quality", "high");
				si.addParam("wmode", "transparent");
				si.write("example");
				break;
			case "present_example4":
				var si = new SWFObject("flash/present/business.swf","present","400","264","8","#336699");
				si.addParam("quality", "high");
				si.addParam("wmode", "transparent");
				si.write("example");
				break;
			case "present_example5":
				var si = new SWFObject("flash/present/space_opt.swf","present","400","300","8","#336699");
				si.addParam("quality", "high");
				si.addParam("wmode", "transparent");
				si.write("example");
				break;
			case "advertise":
				break;
			case "agreement":
				var html = $("textContainer").innerHTML;
				var d = new Date();
				var month =d.getMonth()+1;
				if(month<10)
					month = "0"+month;
				var dateNum =d.getDate();
				if(dateNum<10)
					dateNum = "0"+dateNum;
				var hNum = d.getHours();
				if(hNum<10)
					hNum = "0"+hNum;
				var mNum = d.getMinutes();
				if(mNum<10)
					mNum = "0"+mNum;
				var no = d.getFullYear()+""+month+""+dateNum+"-"+hNum+""+mNum;
				Order.no = no;
				html = html.replace("{number}", no);
				html = html.replace("{user_order}", Order.orderHTML);
				html = html.replace("{type}", Order.exclusiveDesign?"Exclusive Web Site developed package.":"Web sites developed based on prototype modules package.");
				html = html.replace("{pages}", Order.exclusiveDesign?35:5);
				html = html.replace("{subpages}", Order.exclusiveDesign?34:4);
				$("textContainer").innerHTML = html;
				break;
			default:
		}
		Guide.init();
		QSSolutions.render();
		if(el = $("solOrderForm")) Order.orderHTML = el.innerHTML;

		initScroll();
		
		// --
		if ($('textContainer') && $('textContainer').clientHeight < 400)
		{
			$('scroll-bar').style.display = 'none';
		}
	},

	preCaching : function(url)
	{
		url = "/html/"+url+".html";
		var req = new Ajax(url, {
			method: 'get', 
			onComplete: function(){
				QS.cache[this.url.replace(".html", "").replace("/html/", "")] = req.response.text;
			}
		}).request();
	},

	DObjectOnLoad : function()
	{

	}
};


Fx.Morph = Fx.Styles.extend({
 
	start: function(className){
 
		var to = {};
 
		$each(document.styleSheets, function(style){
			var rules = (ua=="IE")? style.cssRules:style.rules;
			$each(rules, function(rule){
				if (!rule.selectorText.test('\.' + className + '$')) return;
				Fx.CSS.Styles.each(function(style){
					if (!rule.style || !rule.style[style]) return;
					var ruleStyle = rule.style[style];
					to[style] = (style.test(/color/i) && ruleStyle.test(/^rgb/)) ? ruleStyle.rgbToHex() : ruleStyle;
				});
			});
		});
		return this.parent(to);
	}
 
});

var Feedback = {
	fields : [],
	data : "",

	send : function()
	{
		if(!this.validate())
		{
			alert("Please, complete all mandatory fields");
			return false;
		}

		Feedback.feebackMorph = new Fx.Morph('sfForm', {wait: false});
		Feedback.feebackMorph.start('opacity020');
		var url = _root+"/inc/send.php";
		this.data = "name="+this.fields["name"].escapeRegExp();
		this.data += "&firm="+this.fields["firm"].escapeRegExp();
		this.data += "&phone="+this.fields["phone"].escapeRegExp();
		this.data += "&email="+this.fields["email"].escapeRegExp();
		this.data += "&comment="+this.fields["comment"].escapeRegExp();
		$('sfName').disabled = $('sfFirm').disabled = $('sfPhone').disabled = $('sfEmail').disabled = $('sfComment').disabled = "true";

		var req = new Ajax(url,{
				method: 'post',
				data : Feedback.data,
				onComplete : function()
				{
					if (req.response.text == "OK")
					{
						alert("Thank you, your message was sent.\nOur Customer Representative will contact you as soon as possible.");
						$('sfName').removeProperty("disabled");
						$('sfFirm').removeProperty("disabled");
						$('sfPhone').removeProperty("disabled");
						$('sfEmail').removeProperty("disabled");
						$('sfComment').removeProperty("disabled");
						$('sfName').value = $('sfFirm').value = $('sfPhone').value = $('sfEmail').value = $('sfComment').value = "";
						Feedback.feebackMorph.start('opacity100');
					}
					else
					{
						alert("Error ! Please, check entered data");
					}
				}
		}).request();
	},

	validate : function()
	{
		this.fields["name"] = $('sfName').value.clean().trim();
		this.fields["firm"] = $('sfFirm').value.clean().trim();
		this.fields["phone"] = $('sfPhone').value.clean().trim();
		this.fields["email"] = $('sfEmail').value.clean().trim();
		this.fields["comment"] = $('sfComment').value.clean().trim();
		if(!(this.fields["name"] && this.fields["phone"] && this.fields["comment"]))
		{
			return false;
		}
		return true;
	}
};

var Feedback = {
	fields : [],
	data : "",

	send : function()
	{
		if(!this.validate())
		{
			alert("Please, complete all mandatory fields");
			return false;
		}

		Feedback.feebackMorph = new Fx.Morph('sfForm', {wait: false});
		Feedback.feebackMorph.start('opacity020');
		var url = _root+"/inc/send.php";
		this.data = "name="+this.fields["name"].escapeRegExp();
		this.data += "&firm="+this.fields["firm"].escapeRegExp();
		this.data += "&phone="+this.fields["phone"].escapeRegExp();
		this.data += "&email="+this.fields["email"].escapeRegExp();
		this.data += "&comment="+this.fields["comment"].escapeRegExp();
		$('sfName').disabled = $('sfFirm').disabled = $('sfPhone').disabled = $('sfEmail').disabled = $('sfComment').disabled = "true";

		var req = new Ajax(url,{
				method: 'post',
				data : Feedback.data,
				onComplete : function()
				{
					if (req.response.text == "OK")
					{
						alert("Thank you, your message was sent.\nOur Customer Representative will contact you as soon as possible.");
						$('sfName').removeProperty("disabled");
						$('sfFirm').removeProperty("disabled");
						$('sfPhone').removeProperty("disabled");
						$('sfEmail').removeProperty("disabled");
						$('sfComment').removeProperty("disabled");
						$('sfName').value = $('sfFirm').value = $('sfPhone').value = $('sfEmail').value = $('sfComment').value = "";
						Feedback.feebackMorph.start('opacity100');
					}
					else
					{
						alert("Error ! Please, check entered data");
					}
				}
		}).request();
	},

	validate : function()
	{
		this.fields["name"] = $('sfName').value.clean().trim();
		this.fields["firm"] = $('sfFirm').value.clean().trim();
		this.fields["phone"] = $('sfPhone').value.clean().trim();
		this.fields["email"] = $('sfEmail').value.clean().trim();
		this.fields["comment"] = $('sfComment').value.clean().trim();
		if(!(this.fields["name"] && this.fields["phone"] && this.fields["comment"]))
		{
			return false;
		}
		return true;
	}
};

var Disc = {
	fields : [],
	data : "",

	send : function(discval)
	{
		if(!this.validate())
		{
			alert("Please, complete all mandatory fields");
			return false;
		}

		var url = _root+"/inc/senddiscount.php";
		this.data = "name="+this.fields["name"]/*.escapeRegExp()*/;
		this.data += "&phone="+this.fields["phone"]/*.escapeRegExp()*/;
		this.data += "&email="+this.fields["email"]/*.escapeRegExp()*/;
		this.data += "&discval="+discval;
		this.data += "&wishlist=";

		this.data += $('site').checked ? ' Site Development, ' : ''; 
		this.data += $('optimization').checked ? ' Web site optimization, ' : ''; 
		this.data += $('presentation').checked ? ' Presentation Development, ' : ''; 
		this.data += $('banners').checked ? ' Banners Development, ' : ''; 
		this.data += $('company').checked ? ' Company Identity, ' : ''; 
		this.data += $('publishing').checked ? ' Publishing advertisement ' : ''; 

		var req = new Ajax(url,{
			method: 'post',
			data : Disc.data,
			onComplete : function()
			{
				if (req.response.text == "OK")
				{
					//--
					Cookie.set('disc-input', 1, {duration: 15}) 
					toHome();
				}
				else if (req.response.text == "EMAIL")
				{
					alert("You already have gift");
				}
				else
				{
					alert("Error! Please, check entered data");
				}
			}
		}).request();

		
		return true;
	},

	validate : function()
	{
		this.fields["name"]	= $('dname').value.clean().trim();
		this.fields["email"]		= $('demail').value.clean().trim();
		this.fields["phone"]	= $('dphone').value.clean().trim();

		if(!this.fields["name"] || !this.fields["phone"] || !this.fields["email"])
		{
			return false;
		}

		return true;
	}
};

var QSSolutions = {

	tmpDomainResult:"",
	modules : [
		["solChkCMS", "CMS", 250],						//0
		["solChkPrint", "Version for Print", 150],							//1
		["solChkTizer", "Module &laquo;Teasers&raquo;", 120],					//2
		["solChkPoll", "Module &laquo;Feedback&raquo;", 175],			//3
		["solChkPartner", "Module &laquo;Partners&raquo;", 150],				//4
		["solChkFAQ", "Module &laquo;FAQ&raquo;", 150],						//5
		["solChkGallery", "Module &laquo;Gallery&raquo;", 190],				//7
		["solChkNews", "Module &laquo;News&raquo;", 175],			//8
		["solChkSubscribe", "Module &laquo;Email Distribution&raquo;", 190],//9
		["solChkBanner", "Module &laquo;Banner Advertisement&raquo;", 185],		//10
		["solChkAuth", "Module &laquo;Authorization&raquo;", 220],				//11
		["solChkCatalog", "Module &laquo;Catalog&raquo;", 275],				//12
		["solChkCatOrder", "Module &laquo;Order&raquo;", 180],	//13
		["solChkZoom", "Module &laquo;Zoom&raquo;", 195],	//14
		["solChkDiscount", "Module &laquo;Discount&raquo;", 295],	//15
		["solChkBlogs", "Module &laquo;Blogs&raquo;", 250],	//16
		["solChkCalculator", "Module &laquo;Calculator&raquo;", 200],	//17
		["solChkCalendar", "Module &laquo;Calendar&raquo;", 200]	//18
	],

	fields : [],
	cmsPrice : 0,

	indexOf : function(name)
	{
		
		for(i=0;i<this.modules.length;i++)
		{
			if(name==this.modules[i][0]){return i;}
		}
	},

	render : function(name)
	{
		var el;
		var modStandartText="";
		var modExtText="";
		var modStandartTextPrices="";
		var modExtTextPrices="";
		if(this.modules[0][2])
			this.cmsPrice=this.modules[0][2];
//		this.modules[0][2] = Order.exclusiveDesign?0:this.cmsPrice;
		Order.price =0;
		// calculating flash animation and exclusive design
		Order.price += Order.orderPrice;
//		Order.price += Order.useFlashAnimation;
		Order.price += Order.exclusiveDesign;

		Order.price += Order.exclusiveDesign?0:Settings.priceStandart;

		// rendering default modules
		if(!Order.exclusiveDesign)
		{
			modStandartText = "Structure and content<br/>";
			modStandartTextPrices = Settings.priceStandart+"<br />";
		}
		for(i=0;i<Order.defaultModules.length;i++)
		{
			Order.price += QSSolutions.modules[Order.defaultModules[i]][2];
			var el = $(QSSolutions.modules[Order.defaultModules[i]][0]);
			if(el)
			{
//				el.checked="true";
//				el.disabled="true";
			}
			modStandartText += "-&nbsp;"+QSSolutions.modules[Order.defaultModules[i]][1]+((i==0)?"":"<br />");
			modStandartTextPrices += QSSolutions.modules[Order.defaultModules[i]][2]+"<br />";
		}

		//rendering additional modules
		for(i=0;i<Order.modules.length;i++)
		{
			Order.price += QSSolutions.modules[Order.modules[i]][2];
			var el = $(QSSolutions.modules[Order.modules[i]][0]);
			if(el)
			{
				el.checked="true";
			}
			modExtText += "-&nbsp;"+QSSolutions.modules[Order.modules[i]][1]+"<br />";
//			modExtTextPrices += (Order.exclusiveDesign && i==0)?"-<br/>":QSSolutions.modules[Order.modules[i]][2]+"<br />";
			modExtTextPrices += QSSolutions.modules[Order.modules[i]][2]+"<br />";
		}
		//domain calculatin
		Order.price += Order.domainCost;
		
		//service calculation
//		Order.price += Order.makeBanners;
//		Order.price += Order.makePromote;
//		Order.price += Order.makePresentation;
		Order.price += Order.makeOptimizationAnalysis;
//		Order.price += Order.makeIdentity;

		// is "from"
//		var from = Order.makePromote||Order.makePresentation||Order.makeBanners||Order.exclusiveDesign||Order.useFlashAnimation?"from ":"";
		var from = Order.makePromote||Order.makePresentation||Order.makeBanners||Order.exclusiveDesign||Order.useFlashAnimation?"":"";

		//titles
		//расчет на 2 месяца
		var in3 = (Order.price*Settings.over3Month).round();
		var in6 = (Order.price*Settings.over6Month).round();
		var init3 = Math.round(in3/2);
		var init3_end = in3-init3;

		var init6 = (in6/3).round();
		var init6_2 = init6;
		var init6_3 = in6-init6-init6_2;

		var every3 = ((in3-init3)/4).round();
		var every6 = ((in6-init6)/7.25).round();
		var end3 = in3-every3*3-init3;
		var end6 = in6-every6*6-init6;

		if(el = $("hint")) el.title = "Fully Prepaid :: "+((1-Settings.payNow)*100).round()+"% discount";
		if(el = $("hintIn3")) el.title = "Two Payments :: 50% Prepaid &ndash; $"+init3+" <br/>Final Payment &ndash; $"+init3_end;

		// rendering by pages
		if(el = $("solDesign")) el.src=Order.img;
		if(el = $("solPriceDisc")) el.innerHTML = from+"$"+(Order.price*Settings.payNow).round();
		if(el = $("solDiscount")) el.innerHTML = ((1-Settings.payNow)*100).round();
		if(el = $("solModulesPrice")) el.innerHTML = Order.price*Settings.payNow;
		if(el = $("solPriceIn3")) el.innerHTML = from+"$"+in3;
		if(el = $("solPriceIn6")) el.innerHTML = from+"$"+in6;
		if(el = $("solPriceInit3")) el.innerHTML = "$"+(Order.price*Settings.over3Init).round();
		if(el = $("solPriceInit6")) el.innerHTML = "$"+(Order.price*Settings.over6Init).round();
		//end of titles

		if(el=$("solIntModulesTXT")) el.innerHTML = modStandartText;
		
		if(el =$('solChkPromote') && Order.makePromote) $('solChkPromote').checked=true
		if(el=$('solChkBanners') && Order.makeBanners) $('solChkBanners').checked=true
		if(el=$('solChkPresentation') && Order.makePresentation) $('solChkPresentation').checked=true
		if(el=$('solChkOptimizationAnalysis') && Order.makeOptimizationAnalysis) $('solChkOptimizationAnalysis').checked=true
		if(el=$('selOptPrice') && Order.makeOptimizationAnalysis) $('selOptPrice').value=Order.makeOptimizationAnalysis;
		if(el=$('selOptPrice')) Order.makeOptimizationAnalysis?$('selOptPrice').removeProperty("disabled"):false;
		if(el=$('solChkIdentity') && Order.makeIdentity) $('solChkIdentity').checked=true
 
		//rendering order form
		if(el=$('solOrderDesignPrice')) el.innerHTML = Order.exclusiveDesign? from+" "+ Settings.exclusiveDesign:Order.orderPrice;
//		if(el=$('solOrderFlashPrice')) el.innerHTML = Order.useFlashAnimation?from+" "+ Settings.useFlashAnimation:"&ndash;";
		if(el=$("solOrderDesign")) Order.exclusiveDesign?el.innerHTML="Exclusive ":el.innerHTML="Design prototype number "+Order.orderID;
		if(el=$("solStandartModules")) el.innerHTML=modStandartText;
		if(el=$("solStandartModulesPrices")) el.innerHTML=modStandartTextPrices;
		if(el=$("solExtModules")) el.innerHTML=modExtText;
		if(el=$("solExtModulesPrices")) el.innerHTML=modExtTextPrices;
		if(el=$("solDomainName")) el.innerHTML = Order.domainName?Order.domainName.toUpperCase():"not selected"
		if(el=$("solDomainNamePrice")) el.innerHTML = Order.domainCost?Order.domainCost:"&ndash;";

		if(el=$("solAnalysePrice")) el.innerHTML = Order.makePromote?"Yes":"No";
		if(el=$("solPresentPrice")) el.innerHTML = Order.makePresentation?"Yes":"No";
		if(el=$("solBannerPrice")) el.innerHTML = Order.makeBanners?"Yes":"No";
		if(el=$("solOptimizationAnalysisPrice")) el.innerHTML = Order.makeOptimizationAnalysis?"Yes ($"+Order.makeOptimizationAnalysis+", "+Order.makeOptimizationAnalysis/150+" hours)":"No";
		if(el=$("solIdentityPrice")) el.innerHTML = Order.makeIdentity?"Yes":"No";
//		if(el=$("solIsIncluded")) el.style.display = Order.exclusiveDesign?"inline":"none";
		if(el=$("solIsIncluded")) el.style.display = "none";
		if(el=$('solOrderFlashPrice')) el.innerHTML = Order.useFlashAnimation?"Yes":"No";

		if(el=$('solTotal')) el.innerHTML = from+"$"+(Order.price*Settings.payNow).round();
		var Tips2 = new Tips($$('.pricebgInner'), {
			initialize:function(){
				this.fx = new Fx.Style(this.toolTip, 'opacity', {duration: 500, wait: false}).set(0);
			},
			onShow: function(toolTip) {
				this.fx.start(1);
			},
			onHide: function(toolTip) {
				this.fx.start(0);
			}
		});

		var Tips3 = new Tips($$('.IEpricebgInner'), {
			initialize:function(){
				this.fx = new Fx.Style(this.toolTip, 'opacity', {duration: 500, wait: false}).set(0);
			},
			onShow: function(toolTip) {
				this.fx.start(1);
			},
			onHide: function(toolTip) {
				this.fx.start(0);
			}
		});

		var Tips4 = new Tips($$('.thumb'), {
			initialize:function(){
				this.fx = new Fx.Style(this.toolTip, 'opacity', {duration: 500, wait: false}).set(0);
			},
			onShow: function(toolTip) {
				this.fx.start(1);
			},
			onHide: function(toolTip) {
				this.fx.start(0);
			},
			className:"thmb"
		});

		Order.isFrom = from;
	},

	chk : function(id)
	{
		switch(id)
		{
			case "solChkUseFlash":
				$('solChkUseFlash').checked ? Order.useFlashAnimation = Settings.useFlashAnimation:Order.useFlashAnimation =0;
				break;
			case "solChkOrderPromote":
				$('solChkPromote').checked ? Order.makePromote = Settings.makePromote:Order.makePromote =0;
				break;
			case "solChkOrderPresentation":
				$('solChkPresentation').checked ? Order.makePresentation = Settings.makePresentation:Order.makePresentation =0;
				break;
			case "solChkOrderBanners":
				$('solChkBanners').checked ? Order.makeBanners = Settings.makeBanners:Order.makeBanners =0;
				break;
			case "solChkOrderOptimizationAnalysis":
//				$('solChkOptimizationAnalysis').checked ? Order.makeOptimizationAnalysis = Settings.makeOptimizationAnalysis:Order.makeOptimizationAnalysis =0;
				if($('solChkOptimizationAnalysis').checked)
				{
					$("selOptPrice").removeProperty("disabled");
				}
				else
				{
					$("selOptPrice").disabled="true";
				}
				$('solChkOptimizationAnalysis').checked ? Order.makeOptimizationAnalysis = parseInt($("selOptPrice").value):Order.makeOptimizationAnalysis =0;
				break;
			case "solChkOrderIdentity":
				$('solChkIdentity').checked ? Order.makeIdentity = Settings.makeIdentity:Order.makeIdentity =0;
				break;
			case "":
		}
		this.render();
	},

	chkDomain : function(domain, zone)
	{
		if(!domain.test("^[a-z0-9\-]+$", "i"))
		{
			alert("Only letters, numbers or hyphens allowed");
			return;
		}
		var url = "/inc/checkdomain.php?domain="+domain+"&zone="+zone;
		var price =Settings.domains[zone];
		$("solDomainResult").innerHTML = "Please wait. Checking...";
		var req = new Ajax(url, {
			method: 'get', 
			onComplete: function(){
				Order.domainName="";
				Order.domainCost=0;
				if(req.response.text.test("free"))
				{
					QSSolutions.tmpDomainResult=$("solDomainResult").innerHTML = "Domain "+domain+"."+zone+" is avaliable for registration. <a href='' onclick='QSSolutions.registerDomain();return false;'><br/>Register ($"+price+" per one year)</a>";
					QSSolutions.domain = [domain, zone];
				}
				if(req.response.text.test("registred"))
					QSSolutions.tmpDomainResult=$("solDomainResult").innerHTML = "Domain "+domain+"."+zone+" has been registred.";
				if(req.response.text.test("error"))
					QSSolutions.tmpDomainResult=$("solDomainResult").innerHTML = "Error ! Please, check entered data";

			}
		}).request();
	},

	registerDomain : function()
	{
		Order.domainName=QSSolutions.domain[0]+"."+QSSolutions.domain[1];
		Order.domainCost=Settings.domains[QSSolutions.domain[1]];
		$("solDomain").disabled="true";
		QSSolutions.tmpDomainResult=$("solDomainResult").innerHTML = "You selected: "+Order.domainName+" for registration. <a href='' onclick='QSSolutions.cancelDomain();return false;' style=\"color:#D70000\">Cancel</a>&nbsp;<a href=\"\" onclick=\"QS.navigate('sol_service');return false;\"><b>Next &raquo;&raquo;</b></a>"
		this.render();
	},

	cancelDomain : function()
	{
		$("solDomain").readonly="false";
		Order.domainName="";
		Order.domainCost=0;
		QSSolutions.tmpDomainResult=$("solDomainResult").innerHTML = "";
		$("solDomain").removeProperty("disabled");
	},

	validate : function()
	{
		this.fields["name"] = $('sfName').value.clean().trim();
		this.fields["firm"] = $('sfFirm').value.clean().trim();
		this.fields["phone"] = $('sfPhone').value.clean().trim();
		this.fields["email"] = $('sfEmail').value.clean().trim();
		if(!(this.fields["name"] && this.fields["phone"]))
		{
			return false;
		}
		return true;
	},

	sendOrder : function()
	{
		if(!this.validate() || !($("payNow").checked || $("payIn3").checked))
		{
			alert("Please, complete all mandatory fields");
			return false;
		} 
		Feedback.feebackMorph = new Fx.Morph('sfForm', {wait: false});
		Feedback.feebackMorph.start('opacity020');
		var data = "name="+encodeURIComponent(this.fields["name"]);
		data += "&firm="+encodeURIComponent(this.fields["firm"]);
		data += "&phone="+encodeURIComponent(this.fields["phone"]);
		data += "&email="+encodeURIComponent(this.fields["email"]);
		data += "&comment="+encodeURIComponent(this.fields["comment"]);
		data += "&order="+encodeURIComponent(Order.orderHTML);
		if($("payNow") && $("payNow").checked) {data += "&payType=now";Order.paymentValue="$"+(Order.price*Settings.payNow).round();}
		if($("payIn3") && $("payIn3").checked) {data += "&payType=payIn3";Order.paymentValue="$"+(Order.price*Settings.over3Month).round();}
		data += "&paymentValue="+encodeURIComponent(Order.isFrom+Order.paymentValue);
		var url="/inc/sendorder.php";
		var req = new Ajax(url, {
			method: 'post',
			data : data,
			onComplete : function() {
				if(req.response.text.test("OK"))
				{
						alert("Thank you, your message was sent.\nOur Customer Representative will contact you as soon as possible.");
						$('sfName').value = $('sfFirm').value = $('sfPhone').value = $('sfEmail').value = $('sfComment').value = "";
						Feedback.feebackMorph.start('opacity100');
						Guide.clearFlashes();
				}
				else
				{

				}
				$('sfName').removeProperty("disabled");
				$('sfFirm').removeProperty("disabled");
				$('sfPhone').removeProperty("disabled");
				$('sfEmail').removeProperty("disabled");
				$('sfComment').removeProperty("disabled");
			}
		}).request();
		
	},

	sendOrder2 : function()
	{
		if(!this.validate())
		{
			alert("Please, complete all mandatory fields");
			return false;
		}
		var data = "name="+encodeURIComponent(this.fields["name"]);
		data += "&firm="+encodeURIComponent(this.fields["firm"]);
		data += "&no="+Order.no;
		data += "&phone="+encodeURIComponent(this.fields["phone"]);
		data += "&email="+encodeURIComponent(this.fields["email"]);
		data += "&order="+encodeURIComponent($("textContainer").innerHTML);
		Feedback.data = data;
		var req = new Ajax("/inc/sendorder2.php",{
				method: 'post',
				data : Feedback.data,
				onComplete : function()
				{
					if (req.response.text == "OK")
					{
						alert("Thank you, your message was sent.\nOur Customer Representative will contact you as soon as possible.");
					}
					else
					{
						alert("Error ! Please, check entered data");
					}
				}
		}).request();
	},

	generatePreAgreement : function()
	{
		if(Order.exclusiveDesign)
		{
			var page = "/inc/agreement.html";
		}
		else
		{
			var page = "/inc/agreement.html";
		}
		top.agree = window.open(page,'agree','location=0,status=0,scrollbars=1,width=650,height=600');
	}
}


var QSPromo = {
	fields : [],
	data : "",

	send : function()
	{
		if(!this.validate())
		{
			alert("Please, complete all mandatory fields");
			return false;
		}

		Feedback.feebackMorph = new Fx.Morph('sfForm', {wait: false});
		Feedback.feebackMorph.start('opacity020');
		var url = _root+"/inc/sendpromo.php";
		this.data = "name="+encodeURIComponent(this.fields["name"]);
		this.data += "&site="+encodeURIComponent(this.fields["site"]);
		this.data += "&firm="+encodeURIComponent(this.fields["firm"]);
		this.data += "&phone="+encodeURIComponent(this.fields["phone"]);
		this.data += "&email="+encodeURIComponent(this.fields["email"]);
		this.data += "&comment="+encodeURIComponent(this.fields["comment"]);
		this.data += "&disc_code="+encodeURIComponent(this.fields["disc_code"]);
		
		if($("google").checked) this.data += "&google=on";
		if($("yahoo").checked) this.data += "&yahoo=on";
		if($("msn").checked) this.data += "&msn=on";
		var other = encodeURIComponent(this.fields["comment"]);
		if(other.length) this.data += "&other="+other;

		$('sfSite').disabled=$('sfName').disabled = $('sfFirm').disabled = $('sfPhone').disabled = $('sfEmail').disabled = $('sfComment').disabled = $('sfCode').disabled = "true";

		var req = new Ajax(url,{
				method: 'post',
				data : QSPromo.data,
				onComplete : function()
				{
					if (req.response.text == "OK")
					{
						alert("Thank you, your message was sent.\nOur Customer Representative will contact you as soon as possible.");
						$('sfSite').value=$('sfName').value = $('sfFirm').value = $('sfPhone').value = $('sfEmail').value = $('sfComment').value = $('other').value= "";
						Feedback.feebackMorph.start('opacity100');
					}
					else
					{
						alert("Error ! Please, check entered data");
					}
					$('sfName').removeProperty("disabled");
					$('sfFirm').removeProperty("disabled");
					$('sfPhone').removeProperty("disabled");
					$('sfEmail').removeProperty("disabled");
					$('sfComment').removeProperty("disabled");
					$('sfSite').removeProperty("disabled");
					$('sfCode').removeProperty("disabled");
				}
		}).request();
	},

	validate : function()
	{
		this.fields["name"] = $('sfName').value.clean().trim();
		this.fields["firm"] = $('sfFirm').value.clean().trim();
		this.fields["phone"] = $('sfPhone').value.clean().trim();
		this.fields["email"] = $('sfEmail').value.clean().trim();
		this.fields["site"] = $('sfSite').value.clean().trim();
		this.fields["comment"] = $('sfComment').value.clean().trim();
		this.fields["comment"] = $('sfComment').value.clean().trim();
		this.fields["disc_code"] = $('disc_code')?$('disc_code').value.clean().trim():"";
		if(!(this.fields["name"] && this.fields["phone"] && this.fields["comment"]))
		{
			return false;
		}
		return true;
	}
};

var QSPresent = {
	fields : [],
	data : "",

	send : function()
	{
		if(!this.validate())
		{
			alert("Please, complete all mandatory fields");
			return false;
		}

		Feedback.feebackMorph = new Fx.Morph('sfForm', {wait: false});
		Feedback.feebackMorph.start('opacity020');
		var url = _root+"/inc/sendpresent.php";
		this.data = "name="+encodeURIComponent(this.fields["name"]);
		this.data += "&firm="+encodeURIComponent(this.fields["firm"]);
		this.data += "&phone="+encodeURIComponent(this.fields["phone"]);
		this.data += "&email="+encodeURIComponent(this.fields["email"]);
		this.data += "&type="+encodeURIComponent(this.fields["type"]);
		this.data += "&comment="+encodeURIComponent(this.fields["comment"]);
		$('sfType').disabled=$('sfName').disabled = $('sfFirm').disabled = $('sfPhone').disabled = $('sfEmail').disabled = $('sfComment').disabled = "true";
		var req = new Ajax(url,{
				method: 'post',
				data : QSPresent.data,
				onComplete : function()
				{
					if (req.response.text == "OK")
					{
						alert("Thank you, your message was sent.\nOur Customer Representative will contact you as soon as possible.");
						$('sfName').value = $('sfFirm').value = $('sfPhone').value = $('sfEmail').value = $('sfComment').value = "";
						Feedback.feebackMorph.start('opacity100');
					}
					else
					{
						alert("Error ! Please, check entered data");
					}
					$('sfName').removeProperty("disabled");
					$('sfFirm').removeProperty("disabled");
					$('sfPhone').removeProperty("disabled");
					$('sfEmail').removeProperty("disabled");
					$('sfComment').removeProperty("disabled");
					$('sfType').removeProperty("disabled");
				}
		}).request();
	},

	validate : function()
	{
		this.fields["name"] = $('sfName').value.clean().trim();
		this.fields["firm"] = $('sfFirm').value.clean().trim();
		this.fields["phone"] = $('sfPhone').value.clean().trim();
		this.fields["email"] = $('sfEmail').value.clean().trim();
		this.fields["type"] = $('sfType').value.clean().trim();
		this.fields["comment"] = $('sfComment').value.clean().trim();
		if(!(this.fields["name"] && this.fields["phone"] && this.fields["comment"]))
		{
			return false;
		}
		return true;
	}
};

var QSStyle = {
	fields : [],
	data : "",

	send : function()
	{
		if(!this.validate())
		{
			alert("Please, complete all mandatory fields");
			return false;
		}

		Feedback.feebackMorph = new Fx.Morph('sfForm', {wait: false});
		Feedback.feebackMorph.start('opacity020');
		var url = _root+"/inc/sendstyle.php";
		this.data = "name="+encodeURIComponent(this.fields["name"]);
		this.data += "&firm="+encodeURIComponent(this.fields["firm"]);
		this.data += "&phone="+encodeURIComponent(this.fields["phone"]);
		this.data += "&email="+encodeURIComponent(this.fields["email"]);
		this.data += "&comment="+encodeURIComponent(this.fields["comment"]);
		$('sfName').disabled = $('sfFirm').disabled = $('sfPhone').disabled = $('sfEmail').disabled = $('sfComment').disabled = "true";

		var req = new Ajax(url,{
				method: 'post',
				data : QSStyle.data,
				onComplete : function()
				{
					if (req.response.text == "OK")
					{
						alert("Thank you, your message was sent.\nOur Customer Representative will contact you as soon as possible.");
						$('sfName').value = $('sfFirm').value = $('sfPhone').value = $('sfEmail').value = $('sfComment').value = "";
						Feedback.feebackMorph.start('opacity100');
					}
					else
					{
						alert("Error ! Please, check entered data");
					}
					$('sfName').removeProperty("disabled");
					$('sfFirm').removeProperty("disabled");
					$('sfPhone').removeProperty("disabled");
					$('sfEmail').removeProperty("disabled");
					$('sfComment').removeProperty("disabled");
				}
		}).request();
	},

	validate : function()
	{
		this.fields["name"] = $('sfName').value.clean().trim();
		this.fields["firm"] = $('sfFirm').value.clean().trim();
		this.fields["phone"] = $('sfPhone').value.clean().trim();
		this.fields["email"] = $('sfEmail').value.clean().trim();
		this.fields["comment"] = $('sfComment').value.clean().trim();
		if(!(this.fields["name"] && this.fields["phone"] && this.fields["comment"]))
		{
			return false;
		}
		return true;
	}
};

// use QSSolutions.render() for rendering data
var Order = {
		/* это инициализиорвать в ленте и вызвать QSSolution.render() */
		orderID:0,							// order no of template
		orderPrice:0,							// price of template
		img: "tmp/design.jpg",					// img of template
		defaultModules: [],	// numbers from QSSolutions.modules. Can not be unchecked !!!
		/* конец */

		paymentValue: "now",						// now, 6months
		modules: [],							// numbers from QSSolutions.modules
		price: 0,
		hosting : 0,
		exclusiveDesign : 0,
		useFlashAnimation: 0,
		domainName : "",
		domainCost : 0,
		makeBanners : 0,
		makePromote : 0,
		makePresentation : 0,
		makeOptimizationAnalysis : 0,
		makeIdentity : 0,
		orderHTML : "",
		isFrom :""
};

var img = new Image();
img.src="/i/9-1.gif";

var Guide = {
	steps : 4,
	currStep : 0,

	labels : [
			'modular design',
			'design selection',
			'optional modules',
			'domain name',
			'additional services',
			'оrder сonfirmation',
			'order form'
		],
	actions : [
			'solutions',
			'sol_designs',
			'sol_modules',
			'sol_domain',
			'sol_service',
			'sol_order',
			'sol_orderform'
		],
	
	nsteps : [true,false,false,false,false],

	setMaxStep : function(step)
	{
		if(this.steps<step)
			this.steps=step;
	},
	
	init : function()
	{
		this.nsteps[this.currStep]=true;

		var num = this.nsteps[0] & this.nsteps[1] & this.nsteps[2] & this.nsteps[3] & this.nsteps[4] ? 6:5;
		for(var i=0;i<num;i++)
		{
			if(!$("s"+i))
			{
				var btn1 = new Element("div");
				btn1.className=this.nsteps[i]?"step_active":"step_noactive";
				if(num==7)
				{
					if(i<=this.steps)
						btn1.className="step_active";
				}
				btn1.id="s"+i;
				btn1.style.left=(75*i)+"px"
				btn1.injectInside('guide');
			}
			else
			{
				$("s"+i).className=this.nsteps[i]?"step_active":"step_noactive";
			}
			if(!$("label"+i))
			{
				var btn1;
				if(!(btn1 = $('label'+i)))
				{
					btn1 = new Element("div", {});
				}
				if(num==7)
				{
					if(i<=this.steps)
						btn1.className="label";
				}
				btn1.style.left=(75*i)+20+"px";
				btn1.className="label_na";
				btn1.innerHTML = this.labels[i].replace(" ","<br/>&nbsp;");
				btn1.id="label"+i;
				btn1.onclick = function()
				{
					var id =parseInt(this.id.replace("label", ""));
					Guide.nsteps[id]=true;
					var action = Order.exclusiveDesign && (Guide.actions[id]=="sol_designs")? "sol_introflash":Guide.actions[id];
					if(id<=Guide.steps+1)
						QS.navigate(action);
				}
				btn1.injectAfter('guide');
			}
			else
			{
				$("label"+i).className=this.nsteps[i]?"label":"label_na";
			}
			

			if(this.nsteps[i] && !$("sf"+i))
			{
				var sf0 = new Element("div");
				sf0.id = "sf"+i;
				sf0.injectBefore('label'+i);
				sf0.style.left=(-46+75*i)+"px";
				var s = new SWFObject("flash/sbutton.swf","sbutton1","150","112","8","");
				s.addParam("wmode", "transparent");
				s.write("sf"+i);
			}

			if(i==this.currStep)
			{

			}
		}
	},

	clearFlashes : function()
	{
		for(var i=0;i<7;i++)
		{
			if($("sf"+i))
				$("sf"+i).innerHTML="";
		}
	}
};

var Discount1 = {

	generate : function()
	{
		alert(Math.floor(Math.random()*6));
	}
}

initScroll = function()
{
	if($("textContainer"))
	{
//		var height = parseInt($('textContainer').getAttribute('name') ? $('textContainer').getAttribute('name') : $('textContainer').clientHeight);
		var height = parseInt($('textContainer').clientHeight);
//height = Math.round(height/10);

		var s = Math.round((height/400)*100) - 10;
		
		s = $('textContainer').getAttribute('name') ? $('textContainer').getAttribute('name') : s;

		mySlide = new Slider($('area'), $('knob'), {	
			steps: s,	
			mode: 'vertical',	
			onChange: function(step){
				$("textContainer").style.top=Math.round(-(step/400)*parseInt($('textContainer').clientHeight))+"px"
			}
		}).set(0);
	}
}