/*
	DYNAMIC VARIABLES START
*/

//	The number to multiply the contacts by for a total bonus sum.
var 	bonusMultiplier = 50;

//	The fields array contains the different features for the manual mail option

var fields = new Array();
var params = new Array();

 	fields['subject'] = "<referrerName> invites you to play rummy together / come play rummy with me";
	fields['body'] = 
	"Hi," + "<br/><br/>"+
	"I just found out about RummyRoyal - and knowing you, I believe you'll like it too!" + "<br/><br/>"+
	"I think you will enjoy playing different games with me over there, so I decided to invite you to check it out." + "<br/><br/>"+
	"Click on the link below to go their site:" + "<br/>"+
	"<rummyUrl>" + "<br/><br/>"+
	"See you there," + "<br/>"+
	"<referrerName>";

	params['contacts_limit'] = 100;
// 	The default name of the sender
var 	referrerName = 'your name';

// 	The default rummyRoyal url in the message
var	rummyUrl = 'www.rummyroyal.com';

	
/*
	DYNAMIC VARIABLES END
*/

var	display = new Object();

display.resizeContainer = function(heightDif){
	var currentHeight = $('#container').css('height');
	currentHeight = parseFloat(currentHeight);
	newHeight = currentHeight + heightDif;
	$('#container , .shade.left , .shade.right').animate({height:newHeight});
}

display.toggleExpand = function(object , heightDif){
	var expanded = (object.css('display')!='none');
	if (expanded){
		heightDif = 0-heightDif;
	}
	display.resizeContainer(heightDif)
	object.toggle();
}

var menu = new Object();
	menu.switchTo = function(linkObject){
		var importType = "." + $(linkObject).attr('linkto');
		var importer = $(importType).get(0);
		$('.visible').fadeOut('fast' , function(){
			$('.visible').removeClass('visible');
			$(importer).toggleClass('visible');
			var src = $(linkObject).next('img').attr('src');
			var id = $(linkObject).attr('id');
			if (importType == '.outlook'){
				$('#sendBox,#sendBoxImg').fadeOut('fast' , function(){
					$('#sendBox,#sendBoxImg').hide()
				});
				menu.mailTo();
			} else {
				$('.autoImport').attr('mailProvider' , id);
				$('#sendBox,#sendBoxImg').fadeIn();
			}
			$('.visible img.titleIcon').attr('src' , src);
			$('.visible').fadeIn('fast');
		})
	}
	
	menu.mailTo = function(linkObject){
		var details = {
			name:$("input[name='name']").val() , 
			username:$("input[name='username']").val() ,
			email:$("input[name='email']").val(),
			cmd:'getReferrerId',
			sid:params['sid']
		};
		$('body').css('cursor','wait');
		$.post(
			'/cgi-bin/importer/refer_friend.cgi', 
			details , 
			function(data){	
				var messageContent="";	
				data = eval(data);
				if (validReturn){
					$('body').css('cursor','auto');
					mailtoLink = 'mailto:';
					if (emailTo != null){
						mailtoLink+= emailTo.toString();
					}
					mailtoLink += '?'
					for (var fieldKey in fields){
						var fieldContent = fields[fieldKey];
						fieldContent = fieldContent.replace(/\<br\/\>/g , '%0A');
						fieldContent = fieldContent.replace(/\<referrerName\>/g , referrerName.charAt(0).toUpperCase() + referrerName.substring(1));
						fieldContent = fieldContent.replace(/\<rummyUrl\>/g , rummyUrl);
						mailtoLink+= fieldKey + '=' + fieldContent + '&';
					}
					window.open(mailtoLink,'_self'); 
				} else {
					$('body').css('cursor','auto');
					alert(errMsg[100]);
					menu.switchTo($("img[linkto='content']").get(0));
				}
			}
		);
	}
	
	
	
var validate = new Object();
	validate.contactsChosen = function(){
		if (contactList.checkedCount() > 0){
			return true;
		} else {
			alert(errMsg[50]);	
		}
		return false;
	}

	validate.details = function(){
		if (validate.empty($("input[name='name']").get(0) , "name")){
			if (validate.empty($("input[name='username']").get(0) , "username" )){
				if (validate.empty($("input[name='email']").get(0) , "email" , "Please enter an ")){
					if (validate.alpha($("input[name='name']").get(0) , "name")){
						if (validate.username($("input[name='username']").get(0) , "username")){
							return emailCheck($("input[name='email']").get(0));
						} 
					}
				} 
			} 
		} 
		return false;
	}
	
	validate.manualContacts = function(){
		var names = $(".manualImport .manualLeft input[type='text']");
		var emails = $(".manualImport .manualRight input[type='text']");
		var count = names.size();
		for (i=0;i<count;i++){
			var valid = false;
			var name = names.get(i);
			var email = emails.get(i);
			if (name.value + email.value != ""){
				if (validate.empty(name , 'name')){
					if (validate.empty(email , 'email' , 'Please enter an ')){
						if (validate.alpha(name , 'name')){
							valid = emailCheck(email , 'email');
						} 
					}
				}
			} else {
				valid = true;
			}
			if (valid==false){
				return valid;
			}
		}
		return valid;
	}
	
	validate.importDetails = function(){
		if (validate.empty($("input[name='emailAddress']").get(0) , 'email' , 'Please enter an ')){
			if (validate.empty($("input[name='emailPassword']").get(0) , 'password')){
				if (emailCheck($("input[name='emailAddress']").get(0))){
					return validate.alpha($("input[name='emailPassword']").get(0),'password');
				}
			}
		}
		return false;
	}
		
	validate.empty = function(strObj , inputName , errorMessage){
		$('.errorMessage').hide();
		if (errorMessage==null){
			errorMessage = "Please enter a ";
		}
		var strVar = strObj.value;
		var empty = (strVar == '');
		if (empty){
			$(strObj).nextAll('.errorMessage').eq(0).show();
			alert(errMsg['empty'+inputName]);
			$(strObj).focus();
		}
		return !empty;
	}
		
	validate.alpha = function(strObj , inputName){
		$('.errorMessage').hide();
		return true;
		var strVar = strObj.value;
		var regExp = new RegExp("[^a-zA-Z'` ]");
		var alpha = !(regExp.test(strVar));
		if (!alpha){
			alert(errMsg['invalid'+inputName]);
			$(strObj).focus();
		}
		return alpha;
	}
	
	validate.username = function(strObj , inputName){
		$('.errorMessage').hide();
		var strVar = strObj.value;
		var regExp = new RegExp("[^a-zA-Z_0-9]");
		var valid = !(regExp.test(strVar));
		if (!valid){
			alert(errMsg['invalidusername']);
			$(strObj).focus();
		} else {
			nameLength = strVar.length;
			valid = ((4 <= strVar.length) && (strVar.length <= 12));
			if (!valid){
				alert(errMsg['lengthusername']);
				$(strObj).focus();	
			}
		}
		return valid;
	}
	
	
var contactList = new Object();

	contactList.addRow = function(name,email){
		var rowCount = $("#contacts tr").size() + 1;
		var first = '';
		if (rowCount == 1){
			first = ' first';
		}
		var output = 
		"<tr style='display:none' class='newRow" + first + "'>"+
			"<td class='checkbox'>" +
				"<input checked=true type='checkbox' />" +
				"<input type='hidden' name=\"friend[" + rowCount + "][name]\" value='" + name + "' />" + 
				"<input type='hidden' name=\"friend[" + rowCount + "][email]\" value='" + email + "' />" + 
			"</td>" +
			"<td class='name'><div class='name'><div>" + name + "</div></div></td>" +
			"<td class='email'><div>" + email + "</div></td>" +
		"</tr>"
		$('#contacts table').show().prepend(output);
		$('.newRow input').click(function(){
			contactList.toggleContact(this);
		})
		$('.newRow').removeClass('newRow').fadeIn('slow');
	}
	
	contactList.addManual = function(){
		var names = $(".manualImport .manualLeft input[type='text'][value!='']");
		var emails = $(".manualImport .manualRight input[type='text'][value!='']")
		var count = names.size();
		if (count == 0) {
			alert(errMsg['emptyname']);
			$(".manualImport .manualLeft input[type='text']").get(0).focus();;
		} else {
			for (i=0;i<count;i++){
				var nameObject = names.get(i);
				var emailObject = emails.get(i);
				var name = nameObject.value;
				var email = emailObject.value;
				$(nameObject).add(emailObject).fadeOut('slow' , function(){
					this.value = '';
					$(this).show();
				});
				contactList.addRow(name , email);
			}
		}
		bonus.update();
	}
	
	contactList.importContacts = function(){
		var loading = $("#contacts #loading").get(0).loading;
		if (loading){
				alert(errMsg[500]);
				return false;
		} else {
			var login = {
				username:$("input[name='emailAddress']").val() , 
				password:$("input[name='emailPassword']").val() 
			};
			if (validate.importDetails()){
				$("#contacts #loading").get(0).loading=true;
				$('#contacts table').eq(0).fadeOut('fast' , function(){
					contactList.flashLoading();
					$('body').css('cursor','wait');
				});
				setTimeout("$('#contacts table').eq(0).fadeIn();" , 21000);
				$.ajax({
				  timeout:120000,
				  data:login,
				  type:"POST",
				  url:$('.autoImport').attr('mailProvider') + ".php",
				  error:function(){
				  	alert(errMsg[101]);	
					$("#contacts #loading").get(0).loading=false;
					$('body').css('cursor','auto');
					$('#contacts table').eq(0).fadeIn();
				  }, 
				  success:function(data){
						data = eval(data);
						if (data=='' || data == null || data == undefined){
							alert(errMsg[101]);	
							$("#contacts #loading").get(0).loading=false;
							$('body').css('cursor','auto');
							$('#contacts table').eq(0).fadeIn();
						} else {
							contactList.addContacts(data);
							menu.switchTo($("img[linkto='content']").get(0));
						}
					} 
				  
				});
			} else {
				return false;
			}
		}
	}
	
	contactList.addContacts = function(contacts){
		if (contacts == null || contacts == undefined || contacts == '') {
			alert(errMsg[101]);
		} else if (contacts.length > 0 ){
			var table = $("#contacts table").eq(0);
			$(contacts).each(function(contact){
				var name = this['contacts_name'].toString();
				var email = this['contacts_email'].toString();
				contactList.addRow(name , email);
			})
			$("#contacts tr:last td").css('border-bottom','#c0c0c0 1px solid')	
		}
		$("#contacts #loading").get(0).loading = false;
		//setTimeout("$('#contactList table').eq(0).fadeIn()",1000);
		$('body').css('cursor','auto');
		bonus.update();
	}
	
	contactList.toggleContact = function(checkBox){
		if (checkBox.checked==true){
			$(checkBox).nextAll("input[type='hidden']").removeAttr('disabled');
		} else {
			$(checkBox).nextAll("input[type='hidden']").attr('disabled','disabled');
		}
		bonus.update();
	}
	
	contactList.All = function(){
		$(".checkbox input[type='checkbox']").attr('checked','checked');
		$(".checkbox input[type='hidden']").removeAttr('disabled');
	}
		
	contactList.None = function(){
		$("input[type='checkbox']").removeAttr('checked');
		$("#contacts input[type='hidden']").attr('disabled','disabled');
	}
	
	contactList.Clear = function(){
		$('#tableHolder table').fadeOut('fast' , function(){
			$('#tableHolder table').empty().show();
		});
	}
	
	
	contactList.flashLoading = function(){
		$("#contacts #loading").fadeIn(1000 , function(){
			$("#contacts #loading").fadeOut(1500 , function(){
				if (this.loading==true){
					contactList.flashLoading();
				}
			});
		});
	}
	
	contactList.checkedCount = function(){
		var count = $("#contacts input[type='checkbox'][checked]").size();
		return count;
	}

var bonus = new Object();

bonus.update = function(){
	$(".bonusSum").fadeOut('fast' , function(){
		bonus.countFriends();
		var bonusSum = bonus.updateSum();
		if (bonusSum > 0){
			$(".bonusSum").fadeIn('fast');
		}
	});
}

bonus.updateSum = function(){
	var bonusSum = (contactList.checkedCount()) * bonusMultiplier;
	$(".bonusSum").html('$' + bonusSum);
	return bonusSum;
}

bonus.countFriends = function(){
	var num = (contactList.checkedCount());
	if (num == 0 || num == '') { num = 'x';} // initial value
	$("#numFriends").html(num);
	return num;
}
	
var form = new Object()

	form.send = function(){
		$("#sendBox,#sendBoxImg").unbind("click");

		var details = $('#step1 input').clone();
		$("#hiddenDetails").html(details);
		var output = form.toPost();
		$.post(
			'/cgi-bin/importer/refer_friend.cgi', 
			output , 
			function(data){	
				data = eval(data);
				$('body').css('cursor','auto');
				if (!validReturn){
					alert(errMsg[100]);
					trigger.send();
					return false;
				} else {
					if (contactList.checkedCount() > params['contacts_limit']) {
						alert(errMsg[300]);
						trigger.send();
						return false;
					}

					$("#toSubmit").empty();
					var hiddenUserDetails = $('#step1 input').clone();
					$("#toSubmit").append(hiddenUserDetails);
					for (var paramKey in params){
						$("#hiddenDetails").append("<input name='" + paramKey + "' value='" + params[paramKey] + "' type='hidden' />")
					}
					$("#hiddenDetails").append("<input name='cmd' value='submit' type='hidden' />")
					$('form').get(0).submit();
				}
			}
		);	
	}
	
	form.details = function(){
		var userDetails = Array();
			$("form input[type='text']").each(function(){
				userDetails[this.name] = this.value;
			});
		return userDetails;
	}
	
	form.contacts = function(){
		var contacts = Array();
			var i = 0;
			var names = $("input:enabled[name*='friend'][name*='name']");
			var emails = $("input:enabled[name*='friend'][name*='email'][value!='']");
			var contacts = Array();
			for (i=0;i<names.length;i++){
				if (names[i]!=null && emails[i]!=null){
					contacts[i] = new Array();
					contacts[i]['name']=names[i].value;
					contacts[i]['email']=emails[i].value;
				}
			}
			return contacts;
	}
	
	form.toPost = function(){
		var output = Array();
		var details = form.details();
		var contacts = form.contacts();
		contactsString = '';
		$(contacts).each(function(){
			contactsString+= this['name'] + ':' + this['email'];
			contactsString+= ",";
		})
		output = {cmd:'authenticate' , 
			  name:details['name'] , 
			  username:details['username'] , 
			  email:details['email'] , 
			  contactsList:contactsString};
		return output;
	}


var trigger = new Object();

	trigger.init = function(){
		trigger.menuLink();
		trigger.manualContacts();
		trigger.importContacts();
		trigger.contactButtons();
		trigger.terms();
		trigger.messagePreview();
//		trigger.tooltip();
		trigger.send();
	}
	
	trigger.menuLink = function(){
		$('.menuLink').click(function(){
			if (validate.details()){
				menu.switchTo(this);
			}
		})
	}
	trigger.manualContacts = function(){
		$('#addToList').click(function(){
			if (validate.manualContacts()){
				contactList.addManual();
			}
		})
	}
	trigger.importContacts = function(){
		$('#importButton').click(function(){
			if (validate.details()){
				contactList.importContacts();	
			}
		})
	}
	
	trigger.contactButtons = function(){
		$("#selectAll span").click(function(){
			functionName = "contactList." + $(this).attr('value') + '()';
			eval (functionName);
			bonus.update();
		})
	}
	
	trigger.terms = function(){
		$("#termsAndConditions span").click(function(){
			display.toggleExpand($(this).next() , 270);
		})
	}
	
	trigger.messagePreview = function(){
		$("#showPreview").click(function(){
			display.toggleExpand($('#messagePreview') , 280);
		})
	}
	
	trigger.send = function(){
		$("#sendBox,#sendBoxImg").click(function(){
			if (validate.details()){
				if (validate.contactsChosen()){
					form.send();
				}
			}
		})
	}
	
	
var tooltips = new Array();
	tooltips[100] = {msg: 'Your name', ttWidth: 100, ttOffsetX: 15, ttOffsetY: 5};
	tooltips[101] = {msg: 'Your Username at RummyRoyal', ttWidth: 230, ttOffsetX: 15, ttOffsetY: 5};
	tooltips[102] = {msg: 'Your E-mail address associated to RummyRoyal account', ttWidth: 230, ttOffsetX: 15, ttOffsetY: 5};
	tooltips[103] = {msg: 'Choose if you use a browser (web) based email service', ttWidth: 240, ttOffsetX: 15, ttOffsetY: 5};
	tooltips[104] = {msg: 'Choose if you use a program (POP3) based email service', ttWidth: 240, ttOffsetX: 15, ttOffsetY: 5};
	tooltips[105] = {msg: 'Choose to enter each friend\'s email address manually', ttWidth: 240, ttOffsetX: 15, ttOffsetY: 5};

	tooltips[200] = {msg: 'שם שלך', ttWidth: 100, ttOffsetX: 15, ttOffsetY: 5};
	tooltips[201] = {msg: 'REMI.CO.IL-שם המשתמש שלך ב', ttWidth: 200, ttOffsetX: 15, ttOffsetY: 5};
	tooltips[202] = {msg: 'REMI.CO.IL-כתובת הדוא"ל המופיעה בחשבונך ב', ttWidth: 240, ttOffsetX: 15, ttOffsetY: 5};
	tooltips[203] = {msg: 'בחר באפשרות זו אם אתה משתמש  <br> (בשירות דואר מבוסס דפדפן (רשת', ttWidth: 200, ttOffsetX: 15, ttOffsetY: 5};
	tooltips[204] = {msg: 'בחר באפשרות זו אם אתה משתמש בש<br>(POP3) ירות דואר מבוסס תוכנה', ttWidth: 220, ttOffsetX: 15, ttOffsetY: 5};
	tooltips[205] = {msg: 'בחר באפשרות זו כדי להכניס באופן <br> ידני את כתובת הדוא"ל של כל חבר', ttWidth: 220, ttOffsetX: 15, ttOffsetY: 5};

	tooltips[300] = {msg: 'Votre Nom', ttWidth: 100, ttOffsetX: 15, ttOffsetY: 5};
	tooltips[301] = {msg: 'Votre Identifiant à RamiRoyal', ttWidth: 230, ttOffsetX: 15, ttOffsetY: 5};
	tooltips[302] = {msg: 'L\'adresse email associée à votre compte RamiRoyal', ttWidth: 230, ttOffsetX: 15, ttOffsetY: 5};
	tooltips[303] = {msg: 'Choisissez si vous utilisez un service de boite email sur navigateur', ttWidth: 240, ttOffsetX: 15, ttOffsetY: 5};
	tooltips[304] = {msg: 'Choisissez si vous utilisez un logiciel de boite email (POP3)', ttWidth: 240, ttOffsetX: 15, ttOffsetY: 5};
	tooltips[305] = {msg: 'Choisissez pour entrer l\'adresse email de chaque ami manuellement', ttWidth: 240, ttOffsetX: 15, ttOffsetY: 5};

var tooltipText = '';

	var prepareTooltip = function(ind){
		if (tooltips[ind].ttWidth) {
			ttWidth = tooltips[ind].ttWidth;
		}
		if (tooltips[ind].ttOffsetX) {
			ttOffsetX = tooltips[ind].ttOffsetX;
		}
		if (tooltips[ind].ttOffsetY) {
			ttOffsetY = tooltips[ind].ttOffsetY;
		}
		tooltipText = tooltips[ind].msg;
		ttPadding = 3;
		ttTextAlign = 'center';
	}

function openDownload(){
	setTimeout('window.location = "/download/index.html"',1000);
}