// Created : 	2008-09-24 - Sébastien Dubus <sebastien.dubus@rightpeople.mobi>
// Updated : 	2008-11-18 - Sébastien Dubus <sebastien.dubus@rightpeople.mobi>

// Misc
isEmail = function(emailStr) {
	var checkTLD 		= 1;
	var knownDomsPat 	= /^(mobi|com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum|fr)$/;
	var emailPat 		= /^(.+)@(.+)$/;
	var specialChars 	= "\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars 		= "\[^\\s" + specialChars + "\]";
	var quotedUser 		= "(\"[^\"]*\")";
	var ipDomainPat 	= /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom 			= validChars + '+';
	var word 			= "(" + atom + "|" + quotedUser + ")";
	var userPat 		= new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat 		= new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray 		= emailStr.match(emailPat);
	if (matchArray == null)				return false;
	var user 			= matchArray[1];
	var domain 			= matchArray[2];
	for (i=0; i<user.length; i++) {
		if (user.charCodeAt(i) > 127)	return false;
	};
	for (i=0; i<domain.length; i++) {
		if (domain.charCodeAt(i) > 127)	return false;
	};
	if (user.match(userPat) == null) 	return false;
	var IPArray=domain.match(ipDomainPat);
	if (IPArray != null) {
		for (var i=1; i<=4; i++) {
			if (IPArray[i] > 255) 		return false;
		};
		return true;
	};
	var atomPat 		= new RegExp("^" + atom + "$");
	var domArr			= domain.split(".");
	var len 			= domArr.length;
	for (i=0; i<len; i++) {
		if (domArr[i].search(atomPat) == -1) return false;
	};
	if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1)return false;
	if (len < 2) return false;
	return true;
};
// Usefull for Next/Previous functions
tmpPartner = {partner_id:17, topic:4};
function changePlayer(type){
	for(var i=0;$('select_partner').options.length>i;i++){
		if($('select_partner').options[i].value == tmpPartner.partner_id) {
			if (i == 1) $('arrow_left').src = 'img/lightview/blank.gif';
			else $('arrow_left').src = 'img/arrow_left.png';
			if (i == ($('select_partner').options.length - 2)) $('arrow_right').hide();
			else $('arrow_right').show();
			if(type == 'previous')	var partner_id = $('select_partner').down(i).previous().value;
			if(type == 'next')		var partner_id = $('select_partner').down(i).next().value;
		};
	};
	var obj = {
		"partner_id"	: partner_id
	};
	var objPost 		= $H(obj).toQueryString();
	new Ajax.Request(ROOTURI+'misc_process.php?action=getCategoryByPartner', {
		"method": 'post',
		"postBody": objPost,
		"onSuccess": function(transport) {
			// Handle errors for user
			var obj 		= transport.responseJSON;
			tmpPartner = {partner_id:partner_id, topic:obj.id};
			writeFlashPlayer(partner_id, obj.id);
			for(var i=0;$('select_partner').options.length>i;i++){
				if($('select_partner').options[i].value != partner_id) $('select_partner').options[i].selected = '';
				else $('select_partner').options[i].selected = "selected";
			};
		}
	});
};
function callPlayer(){
	var partner_id = $('select_partner').options[$('select_partner').options.selectedIndex].value;
	if ($('select_partner').options.selectedIndex == 0) $('arrow_left').src = 'img/lightview/blank.gif';
	else $('arrow_left').src = 'img/arrow_left.png';
	if ($('select_partner').options.selectedIndex == ($('select_partner').options.length - 1)) $('arrow_right').hide();
	else $('arrow_right').show();
	var obj = {
		"partner_id"	: partner_id
	};
	var objPost 		= $H(obj).toQueryString();
	new Ajax.Request(ROOTURI+'misc_process.php?action=getCategoryByPartner', {
		"method": 'post',
		"postBody": objPost,
		"onSuccess": function(transport) {
			// Handle errors for user
			var obj 		= transport.responseJSON;
			tmpPartner 		= {partner_id:partner_id, topic:obj.id};
			writeFlashPlayer(partner_id, obj.id);
		}
	})
};
// Write flash player
function writeFlashPlayer(partner, topic, story){
	var online = ROOTURI;
	var offline = 'http://localhost/www.mobsignal.com/_CEO/';
	var so = new SWFObject(ROOTURI+"rewritethestory.swf", "rewritethestoryFlash", "425", "344", "8");
	so.addVariable("partner",partner);
	so.addVariable("topic",topic);
	so.addVariable("createStory", 	'0');
	if(story != undefined) so.addVariable("targetStory", 	story);
	so.addVariable("langue",'2');
	so.addVariable("type",'standart');
	so.addVariable("server",online);
	so.write('player');
};

// Send to friends part
tmpFriends = new Array;
function send2aFriend(){
	Lightview.show({
		"href": 		ROOTURI+'send2aFriend.php',
		"rel": 			'ajax',
		"options": {
			"width": 	598,
			"height": 	250,
			"ajax": {
				"method": 'get',
				"onComplete": function(){}
			}
		}
	})
};
function addFriend(){
	if(isEmail($('friend_mail').value)){
		Element.update("friend_mail_error", '');
		var friend = {"name":$('friend_name').value, "mail":$('friend_mail').value};
		$('friend_name').value = '';
		$('friend_mail').value = '';
		tmpFriends.push(friend);
		var tmpList = $('friends_list').innerHTML;
		if(tmpList == '') Element.update("friends_list", friend.name);
		else Element.update("friends_list", tmpList+', '+friend.name);
	}
	else{
		Element.update("friend_mail_error", '<br />This is not a valid address<br />');
	};
};
function send2yourFriends(){
	if(isEmail($('me_mail').value)){
		Element.update('me_mail_error', '');
		if($('friends_list').innerHTML != ''){
			Element.update('empty_mail_error', '');
			$('lv_send2friend').style.display = 'none';
			$('lv_ajax_loader').style.display = 'block';
			// get Elements
			var txt		= $('message_txt').value;
			var myname 	= $('me_name').value;
			var mymail 	= $('me_mail').value;
			var obj = {
				"myname"	: myname,
				"mymail"	: mymail,
				"txt"		: txt,
				"type"		: 'CEO',
				"friends"	: tmpFriends.toJSON()
			};
			var objPost 		= $H(obj).toQueryString();
			new Ajax.Request(ROOTURI+'misc_process.php?action=send2yourFriendsHome', {
				"method": 'post',
				"postBody": objPost,
				"onSuccess": function(transport) {
					// Handle errors for user
					Element.update('lv_ajax_loader', 'Your mail has been sent. Thanks');
					tmpFriends = new Array;
					setTimeout('Lightview.hide()',1000); 
				}
			})
		}
		else Element.update('empty_mail_error', "Please click on add to put your friend's address in the recipients' list<br />");
	}
	else Element.update('me_mail_error', '<br />This is not a valid address');
};
/* Popups lightview */
function showConduct(){
	Lightview.show({
		"href":ROOTURI+"popup_conditions.html",
		"rel":"ajax",
		"title":"TERMS & CONDITIONS",
		"options":{
			"height":550,
			"width":650,
			"ajax":{
				"method":"get",
				"onComplete":function(){}
			}
		}
	})
};
function showPolicy(){
	Lightview.show({
		"href":ROOTURI+"popup_policy.html",
		"rel":"ajax",
		"title":"ONLINE PRIVACY POLICY",
		"options":{
			"height":550,
			"width":650,
			"ajax":{
				"method":"get",
				"onComplete":function(){}
			}
		}
	})
};