function resetAdvancedSearchForm(){
	$('advancedSearchForm').reset();
}
function validateAdvancedSearch(frm){
	var elmts=frm.getElements();
	var filledCounter=0;
	elmts.each(function(i,s){
		//		alert(i.type);
		if(i.type=='text' || i.type=='select' || i.type=='select-one'){
			if(i.value!=''){
				if((i.name=='data[Company][address]' && i.value=='address') || (i.name=='data[Company][street]' && i.value=='street') || (i.name=='data[Company][building]' && i.value=='building') || (i.name=='data[Company][phone]' && i.value=='phone')){

				}
				else{
					filledCounter++;
				}
			}
		}
	});
	if(filleCounter<2){
		alert('Please select at least 2 search criteria.');
			return false;
	}
	else return true;
}
function validateLogin(){
	if($('UserLoginUsername').value=='' || $('UserLoginUsername').value=='username'){
		alert('Please enter your username');
		$('UserLoginUsername').focus();
		return false;
	}
	if($('UserLoginPassword').value==''){
		alert('Please enter your password');
		$('UserLoginPassword').focus();
		return false;
	}
	return true;
}
// fieldname, warningname, remainingname, maxchars
function CheckFieldLength(fn,wn,rn,mc) {
	var len = $(fn).value.length;
	if (len > mc) {
		$(fn).value =$(fn).value.substring(0,mc);
		len = mc;
	}
	document.getElementById(wn).innerHTML = len;
	document.getElementById(rn).innerHTML = mc - len;
}
function printMore(companyId,hasSisters){
	withSisters=false;
	if(hasSisters){
		if(confirm('The company you have chosen to print has sister companies related to it. Do you want to print the full info of the sister companies too?')){
			withSisters=true;
		}
		else{
			withSisters=false;
		}
	}

	window.open('/search/printmore/'+companyId+'/'+withSisters,'company_'+companyId,'width=600px,height=500px,scrollbars=yes');
	return false;
}
var paginationFlag=0;

function paginate_search(page,total,position){

	if(paginationFlag==0){
		paginationFlag=1;
		var ThePage=page;
		var height=$('searchContent').scrollHeight;
		var height2=height-(Math.floor(Number(height/2)));
		var remainder=height % 2;
		if(page<=0 || isNaN(page)){
			page=1;
		}
		if(page >total ){
			page=total;
		}
		if(remainder == 1){
			var padding="padding-bottom:1px";
		}else{
			var padding="";
		}


		//		for(var i=1;i<=total;i++){
		//			if($('page_'+i+'_Top'))
		//			$('page_'+i+'_Top').className="paginationNum";
		//		}

		//	$('page_'+page+'_Top').className="paginationNumOn";

		var nextPage= ThePage;
		nextPage +=1;
		//alert(nextPage);
		var prevPage= ThePage-1;
		var nextOff="<img src=\"/img/main/next_off.gif\" alt=\"\" border=\"0\" />";
		var backOff="<img src=\"/img/main/back_off.gif\" alt=\"\" border=\"0\" />";
		var nextDivTop="<a href=\"#\" onclick=\"paginate_recipes("+nextPage+","+total+",'Top');return false;\"><img src='/img/next.jpg' alt='' title='next' border='0' /></a>";
		//alert(nextDivTop);
		var nextDivBottom="<a href=\"#\" onclick=\"paginate_recipes("+nextPage+","+total+",'Bottom');return false;\"><img src='/img/next.jpg' alt='' title='next' border='0' /></a>";
		var backDivBottom="<a href=\"#\" onclick=\"paginate_recipes("+prevPage+","+total+",'Bottom');return false;\"><img src='/img/back.jpg' alt='' title='back' border='0' /></a>";
		var backDivTop="<a href=\"#\" onclick=\"paginate_recipes("+prevPage+","+total+",'Top');return false;\"><img src='/img/back.jpg' alt='' title='back' border='0' /></a>";
		//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

		var numbers='';
		var theclass='';
		var i=1;
		if(total > 14){
			if(ThePage < 14){
				for(i=1;i<=14;i++){

					if(i == ThePage){
						theclass="paginationNumOn";
					}else{
						theclass="paginationNum";
					}
					numbers +="<div id=\"page_"+i+"_Top\" class=\""+theclass+"\" style=\"float:left;\"  align=\"center\"><a href=\"#\" onclick=\"paginate_recipes("+i+","+total+",'Top');return false;\" >"+i+"</a></div>";
				}
				numbers +="<div id=\"page_"+total+"_Top\" class=\"paginationNum\" style=\"float:left;width:15px;\"  align=\"center\"><a href=\"#\" onclick=\"paginate_recipes("+total+","+total+",'Top');return false;\"  >...</a></div>";
				numbers +="<div id=\"page_"+total+"_Top\" class=\"paginationNum\" style=\"float:left;width:15px;\"  align=\"center\"><a href=\"#\" onclick=\"paginate_recipes("+total+","+total+",'Top');return false;\"  >"+total+"</a></div>";
				$('paginationNumbers_Top').innerHTML=numbers;
				//alert(numbers);

			}
			else{
				var startNum=total-13;
				if(page >= 14 && page < startNum){
					numbers +="<div id=\"page_1_Top\" class=\"paginationNum\" style=\"float:left;width:15px;\"  align=\"center\"><a href=\"#\" onclick=\"paginate_recipes(1,"+total+",'Top');return false;\"  >1</a></div>";
					numbers +="<div id=\"page_1_Top\" class=\"paginationNum\" style=\"float:left;width:15px;\"  align=\"center\"><a href=\"#\" onclick=\"paginate_recipes(1,"+total+",'Top');return false;\"  >...</a></div>";

					var beginNum=page -5;
					var lastNum=page +5;
					for(i=beginNum;i<=lastNum;i++){
						if(i==ThePage){
							theclass="paginationNumOn";
						}else{
							theclass="paginationNum";
						}
						numbers +="<div id=\"page_"+i+"_Top\" class=\""+theclass+"\" style=\"float:left;\"  align=\"center\"><a href=\"#\" onclick=\"paginate_recipes("+i+","+total+",'Top');return false;\" >"+i+"</a></div>";
					}

					numbers +="<div id=\"page_"+total+"_Top\" class=\"paginationNum\" style=\"float:left;width:15px;\"  align=\"center\"><a href=\"#\" onclick=\"paginate_recipes("+total+",'"+total+"','Top');return false;\"  >...</a></div>";
					numbers +="<div id=\"page_"+total+"_Top\" class=\"paginationNum\" style=\"float:left;width:15px;\"  align=\"center\"><a href=\"#\" onclick=\"paginate_recipes("+total+",'"+total+"','Top');return false;\"  >"+total+"</a></div>";
					$('paginationNumbers_Top').innerHTML=numbers;

				}else{

					numbers +="<div id=\"page_1_Top\" class=\"paginationNum\" style=\"float:left;width:15px;\"  align=\"center\"><a href=\"#\" onclick=\"paginate_recipes(1,"+total+",'Top');return false;\"  >1</a></div>";
					numbers +="<div id=\"page_1_Top\" class=\"paginationNum\" style=\"float:left;width:15px;\"  align=\"center\"><a href=\"#\" onclick=\"paginate_recipes(1,"+total+",'Top');return false;\"  >...</a></div>";
					var startNum=total -13;
					for(i=startNum;i<=total;i++){
						if(i==ThePage){
							theclass="paginationNumOn";
						}else{
							theclass="paginationNum";
						}
						numbers +="<div id=\"page_"+i+"_Top\" class=\""+theclass+"\" style=\"float:left;\"  align=\"center\"><a href=\"#\" onclick=\"paginate_recipes("+i+","+total+",'Top');return false;\" >"+i+"</a></div>";
					}
					$('paginationNumbers_Top').innerHTML=numbers;
				}

			}

		}else{
			for(var i=1;i<=total;i++){
				if($('page_'+i+'_Top'))
				$('page_'+i+'_Top').className="paginationNum";
			}
			if($('page_'+i+'_Top')){
				$('page_'+ThePage+'_Top').className="paginationNumOn";
			}

			for(var i=1;i<=total;i++){
				if($('page_'+i+'_Bottom'))
				$('page_'+i+'_Bottom').className="paginationNum";
			}
			if($('page_'+ThePage+'_Bottom')){
				$('page_'+ThePage+'_Bottom').className="paginationNumOn";
			}
		}


		//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


		var next=nextDivTop;
		var back=backDivTop;

		var nextBottom=nextDivBottom;
		var backBottom=backDivBottom;

		if(ThePage ==1){
			backTop=backOff;
			nextTop=nextDivTop;
			backBottom=backOff;
			nextBottom=nextDivBottom;
		}else{
			if(ThePage == total ){
				nextTop=nextOff;
				nextBottom=nextOff;
				backTop=backDivTop;
				backBottom=backDivBottom;
			}else{
				nextTop=nextDivTop;
				nextBottom=nextDivBottom;
				backTop=backDivTop;
				backBottom=backDivBottom;
			}
		}
		//alert(nextTop);
		$("paginateNextTop").innerHTML=nextTop;
		$("paginateBackTop").innerHTML=backTop;
		if($("paginateNextBottom") != undefined ){
			$("paginateNextBottom").innerHTML=nextBottom;
			$("paginateBackBottom").innerHTML=backBottom;



		}
		$('searchContent').innerHTML="<div style='width:400px;height:"+height+"px;padding-top:100px;'><div style='width:400px;text-align:center;'><img src='/img/common/ajax-loader.gif' alt='' /></div></div>";

		path="/search/getSearchResultPage/"+ThePage;

		new Ajax.Request(path, {
			onSuccess: function(response) {
				text=response.responseText;

				$('searchContent').style.display="none";
				$('searchContent').innerHTML=text;
				Effect.toggle("searchContent","blind");

				if(position == "Bottom"){
					new Effect.Tween(null, height, 0,{ delay:0.5,duration: 2 }, function(p){ scrollTo(0,p) });
				}
			}})


			paginationFlag=0;
	}
}

function setFocus(text,ele){
	if(ele.value==text)	 ele.value='';
}

function removeFocus(text,ele){
	if(ele.value=='') ele.value=text;
}
function toggleForgotPassword(){
	Effect.toggle('forgotPasswordFormContainer','blind');
}
function togglePasswordChange(){
	Effect.toggle('passwordChangeDiv','blind');
}
function toggleLoader(action,top,left){
	if(action=='start'){
		$('arrowLoaderDiv').setStyle({
			top: top+'px',
			left: left+'px'
		});
		$('arrowLoaderDiv').style.display='block';
	}
	else{
		$('arrowLoaderDiv').setStyle({
			top: '0px',
			left: '0px'
		});
		$('arrowLoaderDiv').style.display='none';
	}
}
function checkUsername(username,id){
	toggleLoader('start',0,0);
	var ele=$('checkUsernameMsgContainer');
	new Ajax.Request('/users/checkusername/'+username+'/'+id, {
		method: 'get',
		onSuccess: function(response) {
			if(response.responseText==1){
				ele.innerHTML='This username is available.';
			}
			else{
				ele.innerHTML=response.responseText;
			}
		},
		onUninitialized: function(response) {
			ele.innerHTML="An error occured while processing your request. Please try again later.";
		},
		on404: function(response){
			ele.innerHTML='An error occured while processing your request. Please try again later.';
		}
	});
	if($('checkUsernameMsgContainer').style.display=='none'){
		Effect.BlindDown('checkUsernameMsgContainer',{duration:0.5});
	}
	highlightFnc=function(){
		new Effect.Highlight('checkUsernameMsgContainer');
	}
	setTimeout("highlightFnc();",500);
	setTimeout("toggleLoader('stop',0,0);",500);
}
function openAdvSearch(){
	var arrayPageSize = getPageSize();
	arrayPageSize[1]=parseInt(arrayPageSize[1])+250;
	$('layerDiv').style.height=arrayPageSize[1]+"px";
	Effect.Appear('layerDiv');
	Effect.Appear('advSearchContainer');

	return false;
}
function closeAdvSearch(){
	Effect.Fade('layerDiv');
	Effect.Fade('advSearchContainer');
}
function getPageSize(){

	var xScroll, yScroll;

	if (window.innerHeight  && window.scrollMaxY) {
		xScroll = window.innerWidth + window.scrollMaxX;
		yScroll = window.innerHeight + window.scrollMaxY;

	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	var windowWidth, windowHeight;

	if (self.innerHeight) {	// all except Explorer
		if(document.documentElement.clientWidth){
			windowWidth = document.documentElement.clientWidth;
		} else {
			windowWidth = self.innerWidth;
		}
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}

	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else {
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){
		pageWidth = xScroll;
	} else {
		pageWidth = windowWidth;
	}

	return [pageWidth,pageHeight];
}

function getSubActivities(elmt){
	var mactivity=elmt.value;
	new Ajax.Request('/activities/getSubActivities/'+mactivity, {
		method: 'get',
		onSuccess: function(response) {
			$('subActivityListContainer').innerHTML=response.responseText;
		}
	});
	return false;
}
function getActivities(elmt){
	var sactivity=elmt.value;
	var mactivity=$('advSearchMainActivity').value;
	new Ajax.Request('/activities/getActivities/'+mactivity+'/'+sactivity, {
		method: 'get',
		onSuccess: function(response) {
			$('activityListContainer').innerHTML=response.responseText;
		}
	});
	return false;
}

function getDistricts(elmt){
	var governorate=elmt.value;
	new Ajax.Request('/areas/getDistricts/'+governorate, {
		method: 'get',
		onSuccess: function(response) {
			$('districtsListContainer').innerHTML=response.responseText;
		}
	});
	return false;
}
function getAreas(elmt){
	var district=elmt.value;
	new Ajax.Request('/areas/getAreasForDistrict/'+district, {
		method: 'get',
		onSuccess: function(response) {
			$('areasListContainer').innerHTML=response.responseText;
		}
	});
	return false;
}
function openSMSInterface(){
	toggleLoader('start',0,0);
	new Ajax.Request('/search/displaysmsindow/', {
		method: 'get',
		onSuccess: function(response) {
			toggleLoader('stop',0,0);
			if(response.responseText<=0){
				alert('Invalid Request!');
				return false;
			}
			else{
				new Insertion.Top($('main'),response.responseText);
				new Draggable('smsWindowContainer',{handle: $('smsWindowMoveBar')});
			}
		},
		onFailure: function(){
			alert('An error occured while performing the request!');
		},
		on404: function(){
			alert('An error occured while performing the request!');
		}
	});

	return false;
}
function addNumberToSMSList(){
	var mobile=$('newMobileNumber');
	if(mobile.value=='' || isNaN(mobile.value) || mobile.value.length!=8){
		alert('Please enter a valid lebanese mobile number with no extra characters in the form \'aabbbbbb\'.');
	}
	else{
		new Insertion.Bottom('mobileNumberSMSList',"<div style='float:left;width:240px;height:auto;overflow:hidden;text-align:left;'><div style='float:left;width:20px;'><input type='checkbox' class='mobileNumberSelect' value='"+mobile.value+"' checked/></div><div style='width:220px;float:left'>&nbsp;"+mobile.value+"</div></div>");
		mobile.value='';
	}
	return false;
}

function sendSelectedSMS(){
	var smsText=$('smsTextToSend').value;
	if(smsText==''){
		alert('Please enter the text you want to send.');
	}
	else{
		var numbers=$$('input.mobileNumberSelect:checked');

		var numberOfSms=numbers.length;
		var smsSent=0;
		var breakLoop=false;
		var lyrTop=$('smsWindowContent').style.top;
		var lyrLeft=$('smsWindowContent').style.left;
		var layerAbove="<div style='width:608px;height:458px;border:2px solid #000000;background-color:#FFFFFF;opacity:0.81;filter: alpha(opacity=81);-moz-opacity:0.81;position:relative;z-index:200;top:"+lyrTop+";left:"+lyrLeft+"' id='layerAboveSms'><div style='padding-top:200px;padding-left:250px;'>Sending SMS <span id='smsSentNumber'>"+smsSent+"</span> out of "+numberOfSms+", please wait...<br/><img src='/img/sms_loader.gif' style='margin-left:30px;' alt='Sending...' title='Sending...' border='0'/><br/><a href='#' onclick='return cancelSmsSending();'>Cancel Sending</a></div></div>";

		new Insertion.Top('smsWindowContainer',layerAbove);
		cancelSmsSending=function(){
			breakLoop=true;
			$('layerAboveSms').fade();
			closeSmsWindow();
			return false;
		}

		new Ajax.Request('/search/checkunitssms/'+numberOfSms, {
			method: 'get',
			onSuccess: function(response) {
				if(isNaN(response.responseText)){
					if(confirm(response.responseText)){
						sendSms=function(){
							numbers.each(function(theNumber){
								if(theNumber.checked && !breakLoop){
									new Ajax.Request('/search/sendsms/'+theNumber.value+'/'+smsText, {
										method: 'get',
										onSuccess: function(response) {
											var resp=response.responseText;
											if(resp==1){
												smsSent++;
												$('smsSentNumber').innerHTML=smsSent;
											}
											else if(resp==-1){
												alert('An error occured while sending the SMS. Please refresh the page and try again.');
												breakLoop=true;
											}
										}
									});

								}
							});
						}
						sendSms();
						if(smsSent>0)
						alert(smsSent+' out of '+numberOfSms+' SMS were sent.');
						else
						alert('An error occured while sending the SMS. Please refresh the page and try again. If the problem persists, please do not hesitate to contact us.');

						$('layerAboveSms').fade();
						closeSmsWindow();
					}
				}
				else{
					alert('An error occured. Please refresh the page and try again.');
					return false;
				}
			}
		});
	}

}
function closeSmsWindow(){
	$('smsWindowContainer').fade();

	removeWindow=function(){$('smsWindowContainer').remove();}
	setTimeout('removeWindow();',1200);

	return false;
}
function openEmailInterface(){
	toggleLoader('start',0,0);
	new Ajax.Request('/search/displayemailwindow/', {
		method: 'get',
		onSuccess: function(response) {
			toggleLoader('stop',0,0);
			if(response.responseText<=0){
				alert('Invalid Request!');
				return false;
			}
			else{

				new Insertion.Top($('main'),response.responseText);
				new Draggable('emailWindowContainer',{handle: $('emailWindowMoveBar')});
			}
		}
	});

	return false;
}
function closeEmailWindow(){
	$('emailWindowContainer').fade();

	removeWindow=function(){$('emailWindowContainer').remove();}
	setTimeout('removeWindow();',1200);

	return false;
}
function addEmailToAddressList(){
	var email=$('newEmailAddress');
	var pattern = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/;
	if(email.value=='' || !email.value.match(pattern)){
		alert('Please enter a valid email address.');
	}
	else{
		new Insertion.Bottom('emailAddressList',"<div><input type='checkbox' class='emailAddressSelect' value='"+email.value+"' checked/>&nbsp;"+email.value+"</div>");
		email.value='';
	}
}

function sendSelectedEmails(){
	var oEditor = FCKeditorAPI.GetInstance('BulkEmail') ;
	var emailText=oEditor.GetHTML();
	var subject=$('sendEmailSubject').value;

	if(emailText==''){
		alert('Please enter the subject and email text you want to send.');
	}
	else{
		var emails=$$('input.emailAddressSelect:checked');

		var numberOfEmails=emails.length;
		var emailsSent=0;
		var breakLoop=false;
		var lyrTop=$('emailWindowContent').style.top;
		var lyrLeft=$('emailWindowContent').style.left;
		var layerAbove="<div style='width:908px;height:508px;border:2px solid #000000;background-color:#FFFFFF;opacity:0.81;filter: alpha(opacity=81);-moz-opacity:0.81;position:relative;z-index:200;top:"+lyrTop+";left:"+lyrLeft+"' id='layerAboveEmail'><div style='padding-top:200px;padding-left:50px;'>Queueing Emails, please wait...<br/><img src='/img/sms_loader.gif' style='margin-left:30px;' alt='Sending...' title='Sending...' border='0'/></div></div>";

		new Insertion.Top('emailWindowContainer',layerAbove);
		cancelSmsSending=function(){
			breakLoop=true;
			$('layerAboveEmail').fade();
			closeEmailWindow();
			return false;
		}

		new Ajax.Request('/search/checkunitsemail/'+numberOfEmails, {
			method: 'get',
			onSuccess: function(response) {
				if(isNaN(response.responseText)){
					if(confirm(response.responseText)){
						var emailsString='';

						if(numberOfEmails>0){
							emails.each(function(email){
								emailsString+=email.value+"&";
							});
						}

						sendEmails=function(){
							new Ajax.Request('/search/sendemail/', {
								method: 'post',
								parameters: {text: emailText, subject: subject, emails: emailsString },
								onSuccess: function(response) {
									var resp=response.responseText;

									if(resp==1){
										alert('The emails are now queued for sending. You can continue working normally.');
									}
									else if(resp==-1){
										alert('An error occured while sending the SMS. Please refresh the page and try again.');

									}
								}
							});
						}

						sendEmails();

						$('layerAboveEmail').fade();
						closeEmailWindow();
					}
				}
				else{
					alert('An error occured. Please refresh the page and try again.');
					return false;
				}
			}
		});
	}

	return false;

}
