var popupOpen = false;
var texteOpen = false;

function checkFormFelicitare(logged) {
	document.location.href = '#msg';
	var msg = "";
	with (document.formTrimiteFelicitare) {
		/*alte campuri*/
			
		var validMails = getValidMails(contacte_scrise.value);
		
		if (text.value == '') 
			msg = "Trebuie sa specificati textul felicitarii! <br />";
		
		if (!logged && from.value == '')
			msg += 'Trebuie sa completati campul "expeditor"!<br>';

		if (adrese_selectate.value == '' && validMails == 0)
			msg += 'Trebuie sa alegeti cel putin un contact sau sa introduceti o adresa de e-mail valida!<br>';

		if (validMails > 5)
			msg += 'Aveti dreptul sa trimiteti o felicitare la maxim 5 adrese de e-mail introduse manual !<br />';
		
		if (logged && document.getElementById('prog').checked == true && data.value == "") 
				msg += "Pentru a programa o felicitare trebuie sa specificati data programarii!<br />";
		
	}
	
	if (msg != "") {
		document.getElementById('erori').innerHTML = msg;
		document.getElementById('erori').style.display = "block";
		return false;
	}
	return true;
}

function select_all_contacts(checkObj){	
	var checkLength = checkObj.length;	
	if (!checkLength) checkObj.checked = !checkObj.checked;
	else
	for(var i = 0; i < checkLength; i++) {
		checkObj[i].checked = !(checkObj[i].checked);			
		}
}

function select_all_category(checkObj){	
	var checkLength = checkObj.length;	
	if (!checkLength) {
		checkObj.checked = !checkObj.checked;
		document.getElementById(checkObj.value).checked = !document.getElementById(checkObj.value).checked;		
	}
	else
	for(var i = 0; i < checkLength; i++) {
		checkObj[i].checked = !(checkObj[i].checked);	
		document.getElementById(checkObj[i].value).checked = !document.getElementById(checkObj[i].value).checked;		
		}
}

function getValidMails(maillist) {
	var mails = maillist.split(',');
	var validMails = new Array();
	
	for (var i = 0; i < mails.length; i++)
		if (isEmail(mails[i].trim()))
			validMails[validMails.length] = mails[i];
			
	return validMails.length;
}

function displaytext(text){
	var theText="";
	parts = text.split('\n');
	for (i=0; i<parts.length; i++) {
		theText += parts[i] + "<br/>";
	}
	return theText;
}

///////////////////////
// variabile globale //
///////////////////////

var httpObject = null;

//////////////////////
// functii generale //
//////////////////////

function getHTTPObject(){
	var xmlhttp;
	// Attempt to initialize xmlhttp object
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} 
	catch (e) {
		// Try to use different activex object
		try {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} 
		catch (E) {
			xmlhttp = false;
		}
	}
	// If not initialized, create XMLHttpRequest object
	if (!xmlhttp) {
		if (typeof XMLHttpRequest != 'undefined') {
			xmlhttp = new XMLHttpRequest();
		}
		else {
			alert("Browser-ul nu suporta scripturi AJAX. Folositi Mozilla 1.5+, Internet Explorer 5.5+ sau Opera");
			return null;
		}
	}
	return xmlhttp;
}

function $(id) {
	return document.getElementById(id);
}

function $s(id) {
	return document.getElementById(id).style;
}

function ajaxOk() {
	return httpObject.readyState == 4 && httpObject.status == 200;
}


function sendGetRequest(target, handler) {
	httpObject = getHTTPObject();
	if (httpObject != null) {
		httpObject.open('GET', target, true);
		eval('httpObject.onreadystatechange = ' + handler);
		httpObject.send(null);
	}
}

function sendPostRequest(target, handler, data) {
	httpObject = getHTTPObject();
	if (httpObject != null) {
		httpObject.open('POST', target, true);
		httpObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		httpObject.setRequestHeader("Connection", "close");
		eval('httpObject.onreadystatechange = ' + handler);
		httpObject.send(data);
	}
}

function submitPreview() {
	with (document.formTrimiteFelicitare) {
		params = new Array();
		params[params.length] = "id_felicitare=" + encodeURIComponent(id_felicitare.value);
		params[params.length] = "text=" + encodeURIComponent(text.value);
		params[params.length] = "font=" + encodeURIComponent(font.value);
		params[params.length] = "font_size=" + encodeURIComponent(font_size.value);
		params[params.length] = "font_style=" + encodeURIComponent(font_style.value);
		params[params.length] = "text_col=" + encodeURIComponent(text_col.value);
		params[params.length] = "bg_col=" + encodeURIComponent(bg_col.value);
		params[params.length] = "bottom_col=" + encodeURIComponent(bottom_col.value);
		params[params.length] = "text_align=" + encodeURIComponent(text_align.value);
		
		sendPostRequest('/felicitari/set_preview_data', 'refreshPreview', params.join('&'));
	}
}

function refreshPreview() {
	if (ajaxOk()) {
		$('previewImg').src = '/felicitari/preview/' + Math.random();
		$s('previewContainer').backgroundColor = '#' + document.formTrimiteFelicitare.bg_col.value;
	}
}

function popupAgenda(location) {
	if (!popupOpen) {
		$s('popup_contacte').display = 'block';
		var pos = findPos(location);
		$s('popup_contacte').top = (pos[1] - 420) + 'px';
		$s('popup_contacte').left = pos[0] + 'px';
		$s('popup_texte').display = 'none';
		texteOpen = false;
	}
	else
		$s('popup_contacte').display = 'none';
		
	popupOpen ^= 1;
}

function popupPredefinite(location) {
	if (!texteOpen) {
		$s('popup_texte').display = 'block';
		var pos = findPos(location);
		$s('popup_texte').top = (pos[1] - 335) + 'px';
		$s('popup_texte').left = (pos[0] - 200) + 'px';
		$s('popup_contacte').display = 'none';
		popupOpen = false;
	}
	else
		$s('popup_texte').display = 'none';
		
	texteOpen ^= 1;
}

function insertText(id) {
	sendGetRequest('/felicitari/get_text_predefinit/' + id, 'updateTextBox');
}

function updateTextBox() {
	if (ajaxOk()) {
		if (httpObject.responseText != '')
			document.formTrimiteFelicitare.text.value = httpObject.responseText;
		$s('popup_texte').display = 'none';
		texteOpen = false;
		submitPreview();
	}
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

function insertContacts() {
	$s('popup_contacte').display = 'none';
	
	popupOpen = false;
	var selContacts = new Array();
	var showContacts = new Array();
	with (document.formTrimiteFelicitare) {
		for (i = 0; i < contacte.length; i++)
			if (contacte[i].checked) {
				selContacts[selContacts.length] = contacte[i].value;
				showContacts[showContacts.length] = '<a href="#" onclick="document.formTrimiteFelicitare.contacte[' + i + '].checked = false; insertContacts(); return false;">' + $('td_' + contacte[i].id).innerHTML + '</a>';
			}
		adrese_selectate.value = selContacts.join(',');
		if (showContacts.length == 0)		
			$('inserted_contacts').innerHTML = '';
		else
			$('inserted_contacts').innerHTML = '<b>Contacte selectate din agenda:</b><br />' + showContacts.join(', ') + '<br /><span>Pentru a sterge un contact din aceasta lista, dati click pe numele sau.</span>';
	}
}

