
function WaitBar(container , options){
	this.init(container , options);
};

WaitBar.prototype = {
	
	container:null ,
	imageURL:null,
	text:'' ,
	
	setImage:function(name){
		var url = Vars.get('public_url') + '/images/icons';
		switch(name){
		case 'large':
			this.imageURL = url + '/wait-large.gif';
			break;
		case 'small':
		default:
			this.imageURL = url + '/wait.gif';
		}
	},
	setText:function(text){
		this.text = text;
	},
	
	show:function() {
		var img = new Image();
		img.src=this.imageURL;
		this.container.update(img);
		
		if (typeof this.text == 'object'){
			this.container.insert( this.text );
		}else{
			this.container.insert('<span>' + this.text + '</span>');
		}
	},
	hide:function(){
		this.container.hide();
	},
	remove:function(){
		this.container.remove();
	},
	
	init:function(container , options){
		this.container = $(container);
		this.setImage( (options.image) ? options.image : 'small'  );
		this.setText( (options.text) ? options.text : '' );
		if (options.show==true){
			this.show();
		}
	}
};
	var contenterr_txt = "Please enter text or attach a document for translation";
	var sourceerr_txt = "Please specify source language";
	var targeterr_txt = "Please specify target language";
	var counterr_txt = "Please enter a valid word count";
	var verify_count = true;
	var fileCounter = 1;
	var textBackground = "step_2_enter_background";
	var uploadBackground = "step_2_upload_background";
	var filesArray = new Array(0,0,0,0,0);
	var testimonials;
	var testimonialCoutner = 0;
	var url = Vars.get('url');
	var template
	
	
	function addFile(){
		var index = filesArray.indexOf(0);
		if ( index >= 0 ){
			fileCounter++;
			e = $('files_container');
			div = document.createElement('div');
			div.setAttribute('id','file_'+index);
			span = document.createElement('span');
			span.setAttribute('id','file_status_'+index );
			input = document.createElement('input');
			input.setAttribute('type','file');
			input.setAttribute('name','post_file'+index);
			input.setAttribute('size','17');
			input.setAttribute('id','post_file'+index);
			$(input).observe('change',function(){upload(index)});
			
			//link = document.createElement('a');
			//link.setAttribute('href','javascript:removeFile('+index+');');
			//txt = document.createTextNode("X");
			//link.appendChild(txt);
		
			div.appendChild(input);
			//if (fileCounter - 1 > 0) div.appendChild(link);
			div.appendChild(span)
			e.appendChild(div);
			filesArray[filesArray.indexOf(0)]=div;
			attachUploadEventToFileElement(index);

		}
		if (index >=5 ){
			$('add_file_link').style.display="none";
		}
	}
	
	function removeFile(num){
		re = $('file_'+num);
		if (num==0){
			$('file_status_0').remove();
			return;
		}
		if (re != null){
			$('files_container').removeChild(re);
			fileCounter--;
			filesArray[num]=0;
		}
		if (fileCounter < 5 ){
			$('add_file_link').style.display="inline";
			if (filesArray.indexOf(0) == 1){	
				
			}
		}
		
	}
	
	function showFiles(){
		$('filesTab').addClassName('active');
		$('textTab').removeClassName('active');
		$('step2_content_files').show();
		$('step2_content_text').hide();
		$('text_word_count').hide();
		
	}

	function showText(){
		$('filesTab').removeClassName('active');
		$('textTab').addClassName('active');
		$('step2_content_files').hide();
		$('step2_content_text').show();
		$('text_word_count').show();
		
	}


	function recalculate_word_count() {
		var content_elem = document.getElementById('content');
		//var string = tinyMCE.getContent();
		
		var string = content_elem.value ;
		r1 = new RegExp('[\u3000-\u4DFF]','g');
		r2 = new RegExp('[\u4E00-\u9FFF]','g');
		r3 = new RegExp('[\u0E00-\u0E7F]','g');
		string = string.replace(r1,' {PNK} ');
		string = string.replace(r2,' {CJK} ');
		string = string.replace(r3,' {THI} ');
		//string = string.replace(/(<([^>]+)>)/ig,"") ;
		string = string.replace(/(\(|\)|\*|\||\+|\"|\'|_|;|:|,|\.|\?)/ig," ") ;
		string = string.replace(/\s+/ig," ");
		//string = string.replace(/_+/ig," ");
		var a = string.split(/[\s+|\\|\/]/g); 
	  	
	  	var count = 0;
	  	var pnkCounter = 0;
	  	var thiCounter = 0;
	  	for (var i=0;i<a.length;i++){
	  		if (a[i]=='{PNK}'){
	  			pnkCounter++;
	  		}else if(a[i]=='{THI}'){
	  			thiCounter++;
	  		}else if (a[i].length>0){
	  			count++;
	  		}
	  	}
	  	count += Math.ceil(pnkCounter/3) + Math.ceil(thiCounter/4)
	  	var field_elem = document.getElementById('rc_cwp_meta_Words_Count');
	  	field_elem.value = count ;
	  
		return false;
	}

	function verify_edit(element){
		if (!element.value){
			if (!$('err-content')){
				var h = $(document.createElement('div'));
				h.id='err-content';
				h.addClassName('err-msg-red');
				h.update(Vars.get('Please enter text for translation or upload files'));
				h.style.width = "450px";
				$('step2_content_text').appendChild(h);
			}
			
			new Effect.Highlight('err-content');
			return false;
		}
		if ($('err-content')){
			$('err-content').remove();
		}
		return true;
				
	}
	function verify_lang(element){
		if (!element.value){
			
			return false;
		}
		
		
		//checkLanguagePairAvailability();
		
		return true;
				
	}

	function toggleLeftButton(status){
		var url = Vars.get('template_url');
		if (status){
			$("button-left").observe('click',function (){
				return submitTranslation();
			});
			$("button-left").style.backgroundImage = "url("+Vars.get('template_url')+"/images/newhp/button.jpg)";
			$("button-left").style.cursor="pointer";
		}else{
			$("button-left").setAttribute('onclick','');
			$("button-left").stopObserving('click');
			$("button-left").style.backgroundImage = "url("+Vars.get('template_url')+"/images/newhp/button2.jpg)";
			$("button-left").style.cursor="default";
		}
	}
	function toggleMiddleButton(status){
		if (status){
			$("button-middle").observe('click',function (){
				return submitTranReview();
			});
			$("button-middle").style.backgroundImage = "url("+Vars.get('template_url')+"/images/newhp/button.jpg)";
			$("button-middle").style.cursor="pointer";
			
		}else{
			$("button-middle").setAttribute('onclick','');
			$("button-middle").stopObserving('click');
			$("button-middle").style.backgroundImage = "url("+Vars.get('template_url')+"/images/newhp/button2.jpg)";
			$("button-middle").style.cursor="default";
		}
	}

	function toggleRightButton(status){
		if (status){
			$("button-right").observe('click',function (){
				return submitExpert();
			});
			$("button-right").style.backgroundImage = "url("+Vars.get('template_url')+"/images/newhp/button.jpg)";
			$("button-right").style.cursor="pointer";
			$('expertiseNotice').hide();
			
		}else{
			$("button-right").setAttribute('onclick','');
			$("button-right").stopObserving('click');
			$("button-right").style.backgroundImage = "url("+Vars.get('template_url')+"/images/newhp/button2.jpg)";
			$("button-right").style.cursor="default";
			$('expertiseNotice').show();
		}
	}
	
	function checkLanguagePairAvailability(){
		var target = new Array();
		var targetCount = 0;
		$$('[name="Target_Language[]"]').each(function(element){
			
			if (element.value && element.allowSubmit){
				target[target.length] = element.value;
				targetCount++;
			}else{
				target[target.length] = '';
			}
		});
		if ($('source-lang').value && target.length > 0 && targetCount){
			
			new Ajax.Request(Vars.get('url') + '/service/checkLanguagePair/' , {
				method : 'post',
				parameters : {s : $('source-lang').value , "t[]" : target },
				evalJSON: true ,
				onSuccess : function (transport){
					languageAvailabilityResponse(transport.responseJSON);
					expertiseAvailabilityResponse(transport.responseJSON);
				}
			});
			
		}
		
		
	}

	
	function languageAvailabilityResponse(json){
		//alert(json);
		if (!json) return;
		newLanguagesErrorMessage(json);
		//expertiseAvailabilityResponse(json);
		/*
		switch (json.availability){
		case 0:
			toggleLeftButton(false);
			toggleMiddleButton(false);
			break;
		case 2:
			break;
		case 1:
		case 3:
		case 4:
			toggleLeftButton(true);
			toggleMiddleButton(true);
			break;
		}
		*/
	}
	function expertiseAvailabilityResponse(json){
		if (!json) return;
		var selectionEnabled=false;
		var select = $(document.createElement('select'));
		select.setAttribute('name','expertise');
		select.setAttribute('id','expertiseList');
		select.style.width="100%";
		var option = $(document.createElement('option'));
		option.value='';
		option.appendChild(document.createTextNode(Vars.get('Field of Expertise')));
		select.appendChild(option);
		for (i=0; i<json.expertise.length; i++){
			var option = $(document.createElement('option'));
			option.value=json.expertise[i].id;
			option.appendChild(document.createTextNode(json.expertise[i].name));
			if (json.availableExp.flatten().indexOf(json.expertise[i].id)>-1){
				selectionEnabled = true;
				//alert(Prototype.Browser.IE7);
				if ( Prototype.Browser.IE6 || Prototype.Browser.IE7){
					select.insert(option);
				}
			}else{
				
				option.setAttribute('disabled','disabled');
			}
			if ( !Prototype.Browser.IE6 && !Prototype.Browser.IE7 ){
				select.insert(option);
			}
			
			
			
			
			
		}
		
		if ($('expertiseListContainer')){
			if (selectionEnabled){
				
				$('expertiseListContainer').update('');
				$('expertiseListContainer').appendChild(select);
				select.observe('change',validateExpertise);
				//toggleRightButton(true);
			}else{
				form.removeFormError($('expertiseList'));
				
				$('expertiseListContainer').update('');
				//toggleRightButton(false);
			}
		}
	}

	function languagesErrorMessage(msg){
		
	}
	
	function newLanguagesErrorMessage(json){
		var enableAny = false;
		var enableExpert = false;
		if (!json.availability) return;
		json.availability.each(
			function (available,index){
				var icon = $$('.alertIcon')[index];
				var short_message = json.short_msg[index];
				var message = json.message[index];
				var disable = false;
				image = $(document.createElement('img'));
				switch (available){
				
				case 0 : 
					var imageName = 'error.png'; 
					disable = true;
					break;
				case 1:
				case 4:
					var imageName = 'alert.png'; 
					enableAny = true;
					break;
				case 3:
					enableExpert = true;
				case 2:
					
					enableAny = true;
					break;
				default: return;
				}
				if (imageName){
					icon.update();
					image.src = image.src = Vars.get('url') + '/public/images/icons/attention_18.png';
					image.style.position = "relative";
					//icon.update(image.addClassName('inlineImg').addClassName('errImage'));
					
					var span = new Element('span');
					
					$(span).update(short_message).addClassName('bold redText');
					var span2 = new Element('span');
					$(span2).update('[more]').addClassName('pointer').observe('click',function(){
						new OHT.Modal({
							content: {
								'title' : short_message,
								'body' : message
							}
							
						});
					});
					
					icon.insert(span).insert(' ').insert(span2);
					
					/*
					if (Tip && message){
						new Tip(image , message , {
							style: 'protoblue',
							images: Vars.get('template_url')+'/images/prototip/styles/protoblue/',
							hook: { target: 'rightMiddle' , tip: 'leftMiddle' },
							//offset: { x:0 , y: -20 },
							stem: 'leftMiddle' ,
							hideAfter: 6 
						});
						image.prototip.show();
					}
					*/
				}else{
					/*
					if (icon.select('img.errImage').length>0 && icon.select('img.errImage')[0].prototip)
						icon.select('img.errImage')[0].prototip.hide();
					*/
					icon.update('');
				}
				if (disable){
					form.target()[index].allowSubmit = false;
				}
					
				//toggleLeftButton(enableAny);
				//toggleMiddleButton(enableAny);
		});
		
	}
	
	function showSubmitWaitMessage(parentElement){
		var image = new Image();
		image.src = Vars.get('url') + '/public/images/icons/wait-large.gif';
		image.style.margin = "10px";
		image.style.verticalAlign = "middle";
		span = document.createElement('span');
		$(span).update(Vars.get('Sending...'));
		$(span).addClassName('f18');
		$(parentElement).style.background = "none";
		$(parentElement).style.height = "64px";
		
		
		
		if ($(parentElement).select('#expertiseListContainer').length > 0){
			$(parentElement).parentNode.insert( $('expertiseListContainer') );
		}
		
		
		$(parentElement).update(image);
		
		$(parentElement).appendChild(span);
		
		
		/*new WaitBar(parentElement , {
			text: span , 
			image: 'large'
		}).show();*/
	}
	
	function submitTranslation(){
		if (!validateForm()) return false;
		
		showSubmitWaitMessage($('translateButton').parentNode);
		var h = $(document.createElement('input'));
		h.setAttribute('type','hidden');
		h.setAttribute('name','submit-translation');
		h.value='submit-translation';
	
			
		document.forms['wizard'].appendChild(h);
		return submitForm();
		
	}
	function submitTranReview(){
		
		if (!validateForm()) return false;
		
		showSubmitWaitMessage($('comboButton').parentNode);
		var h = $(document.createElement('input'));
		h.setAttribute('type','hidden');
		h.setAttribute('name','submit-combo');
		h.value='submit-combo';
		document.forms['wizard'].appendChild(h);
		return submitForm();
		
	}


	function submitExpert(){
		
		if (!validateExpertise()) return false;
		if (!validateForm()) return false;
		
		showSubmitWaitMessage($('expertButton').parentNode);
		var h = $(document.createElement('input'));
		h.setAttribute('type','hidden');
		h.setAttribute('name','submit-expert');
		h.value='submit-expert';
		document.forms['wizard'].appendChild(h);
		return submitForm();
		
	}


	function submitForm(){
		
			form.clearNotAllowed();
			document.wizard.submit();
			return true;
		
	}
	function validateForm(){
		valid = true;
		valid &= form.validateSourceLanguage();
		valid &= form.validateTargetLanguage();
		valid &= form.validateContent()
		
		return valid;

	}

	function validateExpertise(){
		if (!$('expertiseList')) return false;
		if (!$('expertiseList').value){
			form.showFormError($('expertiseList') , Vars.get('Please select field of expertise') , 'bottom');
			return false;
		}
		form.removeFormError($('expertiseList'));
		return true;
	}

	function validateTargetLanguage(){
		var valid = false;
		$$('[name="Target_Language[]"]').each(function (e) {
			if( e.value ) valid=true;
		});
		return valid;
	}
	function newExpertiseErrorMessage(message){
		if (!message){ 
			if ($('err-exp')){
				$('err-exp').remove();
			}
		}
		else{
			if (!$('err-exp')){
				var h = $(document.createElement('div'));
				h.id='err-exp';
				h.addClassName('err-msg-red');
				h.update(message);
				$('expertiseListContainer').appendChild(h);
			}
			new Effect.Highlight('err-exp');
		}
		
	}
	function attachUploadEventToFileElement(id) {
		var file_stamp='post_file'+id;
		if (!$(file_stamp)) return;
		var stat_stamp="file_status_"+id;
		var url=Vars.get('url')+"/service/uploadProject/";
		var file=$(file_stamp);
		new AjaxUpload(file_stamp, {
			 action: url,
			 name: file_stamp,
			 data: {'file': file_stamp},
			 autoSubmit: true,
			 onComplete : function(file, response){
				// alert(response.responseText);
				showFileAfterUpload(id,response);
				//stat=response.responseText;
			 },
			 onSubmit : function (file,extension) {

					showWaitImage(id);
				
			 }
			});
	}

	
	function showWaitImage(filenum){
		var sp =$(document.createElement('span'));
		sp.style.background="url('"+Vars.get('wpurl')+"/images/wait.gif') no-repeat left center";
		sp.style.padding="0 0 0 20px";
		sp.update(Vars.get('Uploading file'));
		$('file_status_'+filenum).update(sp);
		
	}
	
	function showFileAfterUpload(filenum,response){
		
		try{
			
			err = eval('('+response+')');
			if (typeof(err) != null){
				
				$('file_status_'+filenum).update(err.error);
			}
			return;
		}catch (e){}

		if(response.length == 0){
			$('file_status_'+filenum).update(Vars.get('Upload failed'));
			return;
		}
		$('post_file'+filenum).remove(); 
		/*if ($('file_'+filenum).select('a').length > 0){
			$('file_'+filenum).select('a')[0].hide();
		}*/
		$('file_status_'+filenum).update(response);
		if ($('file_status_'+filenum).select('a').length > 0){
			$('file_status_'+filenum).select('a')[0].observe('click',function(){removeUploadedFile(filenum)});
		}
		
		//filesArray[filenum] = 0;
		
	}
	function removeUploadedFile(filenum){

		var url = Vars.get('url') + "/service/removeUploadedFile/";
		key = $('file_'+filenum).select('input')[0].id;
		new Ajax.Request (url , {
			method: 'post',
			parameters: { 'fi': key }
		});
		fileCounter--;
		$('file_'+filenum).remove();
		filesArray[filenum] = 0;
		//addFile();
	}

	function initFilesArray(){
		if ($('file_0')){
			filesArray[0] = $('file_0');
		}
	}

	function highlightErrors(){
		
		$$('.err-msg-red').each(
			function (e) {
				new Effect.Highlight(e,{duration:3 , startcolor:'#ffff00'});
			}
		);
	}

	

	

	function showAddTargetLanguageButton(){

		var n = $(document.createElement('sup'));
		n.appendChild(document.createTextNode(Vars.get('New')));
		n.id = 'newIcon';
		var a = $(document.createElement('a'));
		a.appendChild(document.createTextNode(Vars.get('Add Target Language')));
		a.style.cursor = 'pointer';
		a.observe('click' , function (){
			addTargetLanguage();
		}.bind(window));
		
		$('AddTargetLanguageContainer').appendChild(a);
		$('AddTargetLanguageContainer').appendChild(n);
	}

	function addTargetLanguage(){
		
		var target_row = $$('[name="Target_Language[]"]').first().up('tr').cloneNode(true);
		var target = target_row.select('select').first();
		target.value = '';
		target.observe('change',function(){form.checkLanguages()} );
		target.allowSubmit = true;
		target_row.select('.alertIcon').first().update('');
		
		var removeButton = new Image();
		removeButton.src = Vars.get('url')+'/public/images/icons/cancel_18.png';
		$(removeButton).addClassName('inlineImg').addClassName('removeTargetLanguage').addClassName('pointer');
		removeButton.observe('click',function(event) {
			event.findElement('tr').remove();
			form.checkLanguages();
		});
		target_row.select('td').last().insert(removeButton);
		
		if (tbody = $('TargetLanguageTableBody').select('tbody')){
			tbody[0].insert(target_row);
		}else{
			$('TargetLanguageTableBody').insert(target_row);
		}
		
		return;
		
		/*
		var target = $$('[name="Target_Language[]"]').first().cloneNode(true);
		target.value = '';
		target.observe('change',function(){form.checkLanguages()} );
		target.allowSubmit = true;
		var cell1 = $(document.createElement('td'));
		var cell2 = $(document.createElement('td'));
		var cell3 = $(document.createElement('td'));
		var row = $(document.createElement('tr'));
		var alert = $(document.createElement('span'));
		alert.className = "alertIcon";
		var removeButton =  $(document.createElement('a'));
		var im = new Image();
		im.src = Vars.get('url')+'/public/images/icons/cancel_18.png';
		removeButton.appendChild($(im).addClassName('inlineImg').addClassName('removeTargetLanguage'));
		removeButton.observe('click',function(event) {
			event.findElement('tr').remove();
			form.checkLanguages();
		});
		
		removeButton.style.cursor = "pointer";
		cell2.appendChild(target);
		cell3.appendChild(removeButton);
		cell3.appendChild(alert);
		row.insert(cell1);
		row.insert(cell2);
		row.insert(cell3);
		if (tbody = $('TargetLanguageTableBody').select('tbody')){
			tbody[0].insert(row);
		}else{
			$('TargetLanguageTableBody').insert(row);
		}
		
		//window.alert(row);
		//form.initForm();
		*/
	}

	
	
	function attachAllEvents(){
		$$('.removeTargetLanguage').each(function(e){
			e.style.cursor = 'pointer';
			e.observe('click',function(event) {
				event.findElement('tr').remove();
				form.checkLanguages();
			})
		}) ;
		
		
		
	}

	/*function shakeFeedback(){
		new Effect.Shake($$('.feedback a')[0] , {duration : 1});
				
	}*/

	
    
	document.observe('dom:loaded',function(){
		
		attachUploadEventToFileElement(0);
		initFilesArray();
		
		//checkLanguagePairAvailability();
		highlightErrors();
		//showAddTargetLanguageButton();
		attachAllEvents();
		form = new Form();
		
		
		//form.attachObservers();
		form.checkLanguages();
		//shakeFeedback.delay(20);
		
	});
	
	



	Form = function (){

		
		this.source = function () {
			return $('source-lang');
		}
		this.target = function () {
			return $$('[name="Target_Language[]"]');
		}
		this.alertIcon = function (){
			return $$('.alertIcon');
		}
		
		
		this.files = function (){
			return $$('.uploadFile');
		}
		this.fileContainers = function(){
			return $$('.uploadFileContainer');
		}
		this.filesStatus = function(){
			return $$('.uploadFileStatus');
		}
		this.textContent = function() {
			return $('content');
		}
		
		this.textContentWordCount = function(){
			return $('rc_cwp_meta_Words_Count');
		}
		this.uploadedFile = function() {
			//alert($$('.uploadedFile').length);
			return $$('.uploadedFile');
		}
		
		this.initForm = function(){
			this.attachObservers();
			
			if (Vars.get('show first')=='text'){
				$('directTextTab').simulate('click');
			}
			//window.files = this.files();
			if (this.files().length == 1){
				this.addFile();
			}
		}

		this.attachObservers = function() {
			
			
			this.source().observe('change' , this.checkLanguages.bindAsEventListener(this) );
			//this.source().observe('blur' , this.checkLanguages.bindAsEventListener(this) );
			this.source().observe('change' , this.validateSourceLanguage.bindAsEventListener(this) );
			//this.source().observe('blur' , this.validateSourceLanguage.bindAsEventListener(this) );
			this.target().each(function(e){
				e.observe('change',this.checkLanguages.bindAsEventListener(this) );
				//e.observe('blur',this.checkLanguages.bindAsEventListener(this) );
			}.bind(this));
			//this.target()[0].observe('change' , this.validateTargetLanguage.bindAsEventListener(this) );
			//this.target()[0].observe('blur' , this.validateTargetLanguage.bindAsEventListener(this) );
			$('directTextTab').observe('click' , this.showDirectText);
			$('uploadTab').observe('click' , this.showUpload);
			if ($('translateButton')) $('translateButton').observe('click' , submitTranslation);
			//if ($('comboButton')) $('comboButton').observe('click' , submitTranReview);
			//if ($('expertButton')) $('expertButton').observe('click' , submitExpert);
			$('addFile').observe('click' , this.addFile.bindAsEventListener(this) );
			this.fileContainers().each(function(container){
				
				var button = container.select('.removeFile')[0];
				if (button){
					button.observe('click' , function(){
						this.removeUploadedFile(container);
						//container.remove();
					}.bind(this));
				}
			}.bind(this));
		}
		
		this.checkLanguages = function (){

			
			
			if (!this.isTargetSelected()){
				//this.showFormError(this.target()[0], Vars.get('Please enter source and target languages'))
				return false;
			}else{
				//this.removeFormError(this.target()[0]);
			}

			this.target().each(function(e){
				e.allowSubmit = true;
			});
			
			var redundant = this.getRedundantTargetLanguage();
			if (redundant.length > 0){
				this.showRedundantMessage(redundant);
				
			}
			
			if (!this.isSourceSelected()){
				return false;
			}
			checkLanguagePairAvailability();
			
			return true;
		}

		this.isTargetSelected = function (){
			var flag = false;
			if (!this.target()) return false;
			this.target().each(function (element) {
				if (element.value) {
					flag = true;
					return;
				}
			});
			return flag;
		}

		

		this.isSourceSelected = function () {
			return (this.source() && this.source().value);
		}

		this.getRedundantTargetLanguage = function () {
			var arr = new Array();
			var redundant = new Array();
			
			this.target().each(function(element , index){
				if (arr.indexOf(element.value) >= 0){
					redundant[redundant.length] = index;
				}else if(element.value){
					arr[arr.length] = element.value;
				}
			});
			return redundant;
		}

		this.showRedundantMessage = function(indexes){
			for (var i=0;i<indexes.length;i++){
				if (this.target()[indexes[i]]){
					this.showAlertIcon(indexes[i] , 'error' , Vars.get('You have already selected this language'));
					this.target()[indexes[i]].allowSubmit = false;
				}
			}
		}

		this.showAlertIcon = function (index , type , message){

				if (!this.alertIcon()[index]) return;
				var icon = this.alertIcon()[index];
				image = $(document.createElement('img'));
				switch (type){
					case 'error' : 
						var imageName = 'error.png'; 
						break;
					case 'alert':
						var imageName = 'alert.png'; 
						break;
						enableExpert = true;
					case 'ok':
						return;
					default: 
						return;
				}
				image.src = Vars.get('url') + '/public/images/icons/attention_18.png';
				image.style.position = "relative";
				icon.update(image.addClassName('inlineImg'));
				if (Tip && message){
					new Tip(image , message , {
						style: 'protoblue',
						images: Vars.get('template_url') + '/images/prototip/styles/protoblue/',
						hook: { target: 'rightMiddle' , tip: 'leftMiddle' },
						/*offset: { x:0 , y: -20 },*/
						stem: 'leftMiddle' 
					});
				}

		}

		this.clearNotAllowed = function() {
			this.target().each(function(e){
				if (!e.allowSubmit){
					e.parentNode.parentNode.remove();
				}
			});
		}
		
		this.showDirectText = function (){
			$('uploadTab').removeClassName('active');
			$('directTextTab').addClassName('active');
			$$('.upload')[0].hide();
			$$('.directText')[0].show();
		}
		
		this.showUpload = function (){
			$('directTextTab').removeClassName('active');
			$('uploadTab').addClassName('active');
			$$('.directText')[0].hide();
			$$('.upload')[0].show();
		}
		
		this.addFile = function () {
			
			var index = this.files().length + 1;
			var p = $(document.createElement('p'));
			p.addClassName('uploadFileContainer');
			/*
			input = $(document.createElement('input'));
			input.setAttribute('type','file');
			input.setAttribute('name','post_file'+index);
			input.setAttribute('size','17');
			input.setAttribute('id','post_file'+index);
			input.addClassName('uploadFile');
			*/
			this.attachUploadEventToFileElement(p);
			span = $(document.createElement('span'));
			span.addClassName('uploadFileStatus');
			//p.insert(input);
			p.insert(span);
			$('upload').insert(p);
			
			/*
			var index = filesArray.indexOf(0);
			if ( index >= 0 ){
				fileCounter++;
				e = $('files_container');
				div = document.createElement('div');
				div.setAttribute('id','file_'+index);
				span = document.createElement('span');
				span.setAttribute('id','file_status_'+index );
				input = document.createElement('input');
				input.setAttribute('type','file');
				input.setAttribute('name','post_file'+index);
				input.setAttribute('size','17');
				input.setAttribute('id','post_file'+index);
				$(input).observe('change',function(){upload(index)});
				
				//link = document.createElement('a');
				//link.setAttribute('href','javascript:removeFile('+index+');');
				//txt = document.createTextNode("X");
				//link.appendChild(txt);
			
				div.appendChild(input);
				//if (fileCounter - 1 > 0) div.appendChild(link);
				div.appendChild(span)
				e.appendChild(div);
				filesArray[filesArray.indexOf(0)]=div;
				attachUploadEventToFileElement(index);

			}
			if (index >=5 ){
				$('add_file_link').style.display="none";
			}
			*/
			
			
		}
		
		this.attachUploadEventToFileElement = function(container) {
			//window.co[window.co.length] = container;
			//var file_stamp='post_file'+id;
			//if (!$(file_stamp)) return;
			//var stat_stamp="file_status_"+id;
			var url=Vars.get('url')+"/service/uploadProject/";
			//var file=$(file_stamp);
			//var parent = $(fileElement).parentNode;
			/*
			parent.ajax = new AjaxUpload(fileElement, {
				 action: url,
				 name: fileElement.id,
				 data: {'file': fileElement.id},
				 autoSubmit: true,
				 onComplete : function(file, response){
					this.showFileAfterUpload(fileElement,response );
				 }.bind(this),
				 onSubmit : function (file,extension) {
					this.showWaitImage(fileElement);
				 }.bind(this)
			});
			*/
			
			new FileUploader(container , {
				url:url , 
				vars : {
					'file': 'post_file1'
				} ,
				onStart : function(){
					this.showWaitImage(container);
					//alert(container);
				}.bind(this),
				onSuccess : function(response){
					//alert(container);
					this.showFileAfterUpload(container,response );
				}.bind(this)
			});
			
			
		}
		
		this.showFileAfterUpload = function(container , response){
			//alert(ajaxElement);
			var parent = container;
			var st = $(parent).select('.uploadFileStatus')[0];
			
			try{
				
				err = eval('('+response+')');
				if (typeof(err) != null){
					this.fileUploadError(container, err.error);
					//st.update(err.error);
				}
				return;
			}catch (e){}

			if(!response || response.length == 0){
				this.fileUploadError(container, Vars.get('Upload failed'));
				//st.update(Vars.get('Upload failed'));
				
				return;
			}
			
			/*if ($('file_'+filenum).select('a').length > 0){
				$('file_'+filenum).select('a')[0].hide();
			}*/
			st.update(response);
			
			var fileKey = (st.select('input').length > 0) ? st.select('input')[0].id : null ;
			
			
			if (st.select('a').length > 0){
				st.select('a')[0].observe('click',function(){
					this.removeUploadedFile(parent)
				}.bind(this));
			}
			container.select('form')[0].remove();
			if (parent && parent.ajax) parent.ajax.destroy();
			
			
			if (fileKey && st.select('.wordsCountCalc').length > 0){
				//need to calculate word count
				//new WaitBar(st.select('.wordsCountCalc .wait')[0],{image:'small',show:true});
				new Ajax.Request(Vars.get('url')+'/service/wordCounter/',{
					parameters:{
						'fk' : fileKey
					},
					evalJS : true,
					onSuccess : function(response){
						var words = 0;
						res = response.responseJSON;
						if (res && res.file){
							words = parseInt(res.file.words);
						}
						if (words >=5){
							st.select('.wordsCountCalc')[0].update('# words:');
							$(fileKey).show().value=words;
						}else if(words > 0) {
							st.select('.wordsCountCalc')[0].update('# words:');
							$(fileKey).show().value=words;
							this.showIncorrectWordCountTip($(fileKey));
						}else{
							st.select('.wordsCountCalc')[0].update('Enter number of words:');
							$(fileKey).show();
							this.showIncorrectWordCountTip($(fileKey));
						}
					}.bind(this),
					onFailure : function(response){
						st.select('.wordsCountCalc')[0].update('Enter number of words:');
						$(fileKey).show()
						this.showIncorrectWordCountTip($(fileKey));
					}.bind(this)
				});
			}else{
				var words = st.select('input');
				if (words && words[0]){
					words = words[0];
					window.words = words;
					if (words.value <= 10){
						this.showIncorrectWordCountTip(words);
					}
				}
			}
			
			
			
			
			
		}
		
		
		
		this.showIncorrectWordCountTip = function(input){
			var content = $('incorrectWordCount').clone(true);
			var tip = new OHTTip(null , content , {
				beforeOpen : function(tip){
					var w = $(tip.contentElement).select('.correctWordCount')[0];
					//alert(Element.select(tip.contentElement,'.correctWordCount'));
					w.value = input.value;
					var ok = tip.contentElement.select('.correctWordCountOK')[0];
					ok.observe('click',function(){
						input.value = w.value;
						tip.close();
					});
					var cancel = tip.contentElement.select('.correctWordCountCancel')[0];
					cancel.observe('click',function(){
						tip.close();
					});
				},
				afterOpen : function(tip){
					var w = $(tip.contentElement).select('.correctWordCount')[0];
					//alert($(tip.contentElement).select('.correctWordCount').length);
					w.select();
				}, 
				width: '450px'
			});
			tip.show();
		}
		
		this.showWaitImage = function(file){
			//window.fi = file;
			var st = $(file).select('.uploadFileStatus')[0];
			var sp =$(document.createElement('span'));
			sp.style.background="url('"+Vars.get('wpurl')+"/images/wait.gif') no-repeat left center";
			sp.style.padding="0 0 0 20px";
			sp.update(Vars.get('Uploading file'));
			st.update(sp);
			
		}
		
		this.removeUploadedFile = function (fileParent){
			window.par = fileParent;
			var url = Vars.get('url') + "/service/removeUploadedFile/";
			key = $(fileParent).select('input')[0].id;
			new Ajax.Request (url , {
				method: 'post',
				parameters: { 'fi': key }
			});
			fileCounter--;
			$(fileParent).remove();
			
			//addFile();
		}
		this.fileUploadError = function(container , message){
			var st = $(container).select('.uploadFileStatus')[0];
			var image = $(document.createElement('img'));
			image.src = Vars.get('url') + '/public/images/icons/attention_18.png';
			image.style.position = "relative";
			st.update(image.addClassName('inlineImg'));
			if (Tip && message){
				new Tip(image , message , {
					style: 'protoblue',
					images: Vars.get('template_url') + '/images/prototip/styles/protoblue/',
					hook: { target: 'rightMiddle' , tip: 'leftMiddle' },
					/*offset: { x:0 , y: -20 },*/
					stem: 'leftMiddle' 
				});
			}
		}
		
		this.showFormError = function(element ,message , type){
			if(!element) return;
			if (element.prototip){
				element.prototip.remove();
			}
			var _target;
			var _tip;
			var _stem;
			
			switch (type){
			
			case 'bottom' :
				
				_target = 'topMiddle' ;
				_tip='bottomMiddle';
				_stem = 'bottomMiddle';
				break;
			default : 
				_target = 'rightMiddle' ;
				_tip='leftMiddle';
				_stem = 'leftMiddle';
				break;
			}
			if (Tip && message){
				new Tip(element , message , {
					style: 'protoblue',
					images: Vars.get('public_url') + '/images/prototip/styles/protoblue/',
					hook: {  target: _target , tip: _tip  },
					stem: _stem ,
					hideAfter: 6 ,
					/*offset: { x:0 , y: -20 },*/
					showOn: false , 
					hideOn: false,
					closeButton : true
				});
				if(!element) return;
				if (element.prototip){
					element.prototip.show();
				}
			}
		}
		
		this.removeFormError = function(element){
			if(!element) return;
			if (element.prototip){
				element.prototip.remove();
			}
		}
		
		this.validateSourceLanguage =  function(){
			if (!this.isSourceSelected()){
				this.showFormError($$('.step1').first(), Vars.get('Please select Source and Target Languages'),'bottom');
				//form.source().prototip.show('slow');
				return false;
			}else{
				this.removeFormError(this.source());
			}
			return true;
		}
		
		this.validateTargetLanguage =  function(){
			if (!this.isTargetSelected()){
				this.showFormError($$('.step1').first(), Vars.get('Please select Source and Target Languages'), 'bottom');
				//form.source().prototip.show('slow');
				return false;
			}
			var flag;
			this.target().each(function(e){
				if (e.allowSubmit)
					flag = true;
			});
			
			if (!flag) return false;
				
			this.removeFormError(this.target()[0]);
			return true;
		}
		
		this.validateContent = function (){
			valid = false;
			if (this.textContent().value && this.textContentWordCount().value > 0){
				valid |= true;
			}
			if (this.uploadedFile().length > 0 ){
				valid |= true;
			}
			
			if (valid){
				this.removeFormError($$('.step2')[0]);
				return true;
			}else{
				this.showFormError($$('.step2')[0], Vars.get('Please enter text for translation or upload files'), 'bottom')
				return false;
			}
		}
		
		this.initForm();
		
		
	}
	
	

	
LP = function() {
	
	this.chatButtons = function(){
		return $$('.liveperson');
	}
	
	this.showButtons = function (){
		this.chatButtons().each(function(e){
			//e.show();
			new Effect.Appear(e);
		});
	}
	
	this.hideButtons = function (){
		this.chatButtons().each(function(e){
			//e.hide();
			new Effect.fade(e);
		});
	}

	this.checkOnline = function(){
		
		new Ajax.Request(Vars.get('url') + '/service/livePersonStatus/' , {
			method : 'get',
			onSuccess : function (transport){
				this.onlineResponse(transport.responseText);
			}.bind(this)
		});
	}
	
	this.onlineResponse = function (response){
		if (parseInt(response)){
			this.showButtons();
		}else{
			this.hideButtons();
		}
	}
	
	this.open = function(){
		window.lpButtonCTTUrl = 'http://server.iad.liveperson.net/hc/256883/?cmd=file&file=visitorWantsToChat&site=256883&imageUrl=http://server.iad.liveperson.net/hcp/Gallery/ChatButton-Gallery/English/General/3c&referrer='+escape(document.location); 
		window.lpButtonCTTUrl = (typeof(lpAppendVisitorCookies) != 'undefined' ? lpAppendVisitorCookies(lpButtonCTTUrl) : lpButtonCTTUrl); 
		window.open(lpButtonCTTUrl,'chat256883','width=475,height=400,resizable=yes');
	}
	
	this.init = function() {
		this.chatButtons().each(function(e){
			e.observe('LP:click' , function(){
				this.open();
			}.bindAsEventListener(this));
		}.bind(this));
		this.chatButtons().each(function(e){
			e.observe('click' , function(event){
				
				event.element().fire('LP:click');
			});
		});
		this.checkOnline();
	}
	
	this.init();
		
};

$(document).observe('dom:loaded' , function(){
	
	LP = new LP();
});
$(document).observe('dom:loaded',function(){
	
	adroll_adv_id = "JKIZSLI6UZHHLDD2KBQ6ZF";
	adroll_pix_id = "WWFNGFKBBJHJNNSR732SRZ";

	(function () {
		
	   __adroll_loaded=true;

	   var scr = document.createElement("script");

	   var host = (("https:" == document.location.protocol) ? "https://s.adroll.com" : "http://a.adroll.com");

	   scr.setAttribute('async', 'true');

	   scr.type = "text/javascript";

	   scr.src = host + "/j/roundtrip.js";

	   document.documentElement.firstChild.appendChild(scr);

	   

	}());
});

