/*
Inicializacion de javascript
Configuracion de componentes y funciones compartidas
*/

//Configuracion de tinymce
var tinymceConfig = {
	script_url : '/jscripts/tiny_mce/tiny_mce.js',
	language : 'es',
	theme : "advanced",
	plugins : "advimage,emotions,inlinepopups,paste",
	content_css : "/styles/wysiwyg.css",
	valid_elements : "p,a[!href|target:_blank],span[style],strong/b,em/i,li,ol,ul,hr,img[class|src|border=0|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name],br",
	valid_child_elements : "span[span|b|#text],a[#text]",
	font_size_style_values : "8px,10px,12px,14px,18px,24px,36px",
	theme_advanced_buttons1 : "undo,redo,|,bold,italic,underline,|,forecolor,backcolor,|,bullist,numlist,|,link,unlink,image,|,emotions",
	theme_advanced_buttons2 : "",
	theme_advanced_buttons3 : "",
	theme_advanced_buttons4 : "",
	theme_advanced_toolbar_location : "top",
	theme_advanced_toolbar_align : "left",
	theme_advanced_resizing : false,	
	relative_urls : false
};

var setOptions = function(slect, data) {
	removeOptions(slect);
	addOptions(slect, data);
};

var addOptions = function(slect, data) {
	if (data instanceof Object) {
		var c = 0, s = 0;
		for(var i in data) {
			if (data[i] instanceof Object) {
				s = c;
				slect.options[c] = new Option(data[i].label, i, 'defaultSelected');
			} else {
				slect.options[c] = new Option(data[i], i);
			}
			c++;
		}
		slect.options[s].selected = true;
	} else {
	   alert('An error ocurred:' + data);
	}
};

var removeOptions = function(slect) {
	for(var i = slect.options.length-1; i >= 0 ; i--){
		slect.options[i] = null;
	}
};

// jquery.ajax error request
var ajaxErrorResponse = function(xhr, status) {
	//alert(xhr.responseText);
	var error = eval('(' + xhr.responseText + ')');
	ajaxError(error);	
};

var ajaxError = function(jsonError) {
	
	if (jsonError.stack || jsonError.params) {
		if (confirm(jsonError.message + ': ' + jsonError.exception + '\n\nMas informacion:')) {
			alert(jsonError.stack + '\n' + jsonError.params);	
		}
	} else {
		alert(jsonError.message + ': ' + jsonError.exception);
	}
};

$(document).ready(function(){
	// Common config for all ajax requests
	$.ajaxSetup({
		error: ajaxErrorResponse
	});
	
	$.nyroModalSettings({closeButton:'<a class="close-button nyroModalClose" href="javascript:void%200"></a>'});
	
});

var unserializeUrl = function(url) {
	var queryString = {};
	url.replace(
		new RegExp("([^?=&]+)(=([^&]*))?", "g"),
		function($0, $1, $2, $3) { 
			queryString[$1] = $3; 
		 });
	return queryString;
}
