var messageObj = new DHTML_modalMessage();
messageObj.setShadowOffset(5);

var Page = {
	'FindControl' : function(controlID) {
		if (typeof(controlID) == 'object') {
			return controlID;
		}

		var id = controlID;


		if (document.getElementById)
		{
			obj = document.getElementById(id);
		}

		if ( !obj && document.all)
		{
			obj = document.all[id];
		}

		if( !obj && document.forms[0] )
		{
			obj = document.forms[0][id];
		}

		return obj;
	},
	'Download' : function (){
		window.location = "index.php" + window.location.search + "&action=download";
	},
	'Popup' : function (url,w,h, winName, resizable,scrollbar){
		t = (screen.height - h) / 2;
		l = (screen.width - w) / 2;

		if(resizable){
			resizable = ', resizable';
		} else {
			var resizable = '';
		}

		if (!scrollbar) scrollbar="yes";

		if(winName){
			wind = window.open(url,winName,"width="+w+",height="+h+",top="+t+",left="+l+",scrollbars="+scrollbar+",status=0" + resizable);
			return;
		}

		wind = window.open(url,"","width="+w+",height="+h+",top="+t+",left="+l+",scrollbars="+scrollbar+",status=0" + resizable);
	}
}

var Modal = {
	'Window' : function (url,w,h){
		Modal.PrepareWindow();
		messageObj.setSource(url);
		messageObj.setCssClassMessageBox(false);
		messageObj.setSize(w,h);
		messageObj.setShadowDivVisible(true);
		messageObj.display();
	},
	'Message' : function (messageContent,w,h,cssClass){
		Modal.PrepareWindow();
		messageObj.setHtmlContent(messageContent);
		messageObj.setSize(w,h);
		messageObj.setCssClassMessageBox(cssClass);
		messageObj.setSource(false);
		messageObj.setShadowDivVisible(true);
		messageObj.display();
	},
	'Close' : function (){
		Modal.RestoreWindow();
		messageObj.close();
	},
	'PrepareWindow' : function (){
		frm = document.forms[0];
		if (!frm) return;
		for(i=0;i<frm.length;i++){
			if (frm[i].type == "select-one"){
				frm[i].style.visibility = "hidden";
			}
		}
	},
	'RestoreWindow' : function (){
		frm = document.forms[0];
		if (!frm) return;
		for(i=0;i<frm.length;i++){
			if (frm[i].type == "select-one"){
				frm[i].style.visibility = "visible";
			}
		}
	}

}

var Picker = {
	'Display' : function (entity, classpath, field){
		var url = "index.php?module=admin/picker&field="+field+"&entity=" + entity + "&classpath=" + classpath;
		Page.Popup(url, 500, 300);
	},
	'SetValue' : function (key,value){
		var fieldname = Page.FindControl("fieldname").value;
		opener.Page.FindControl(fieldname+"_hidden").value = key;
		opener.Page.FindControl(fieldname).value = value;
	}
}

var Combo = {
	'addOption' : function (idCombo, valueCombo, textCombo, isSelected){
		var combo = document.getElementById(idCombo);
		if (combo==null)
			return false;

		var pos = combo.length;

		newOpt = document.createElement('OPTION')
		newOpt.text = textCombo;
		newOpt.value = valueCombo;

		combo.options.add(newOpt, pos);

		combo.options[pos].selected = isSelected;

		return true;
	},
	'selectOption' : function (idCombo, valueCombo){
		var combo = document.getElementById(idCombo);
		if (combo==null)
			return false;

		var pos = null;

		for(var i=0;i<combo.options.length;i++) {
			if (combo.options[i].value == valueCombo) {
				pos=i;
			}
		}

		if(pos!=null) {
			combo.options[pos].selected = true;
			return true;

		} else
			return false;
	}
}

var TextBox = {

	'insertAtCursor' : function(myField, myValue) {
		//IE support
		if (document.selection) {
		myField.focus();
		sel = document.selection.createRange();
		sel.text = myValue;
		}
		//MOZILLA/NETSCAPE support
		else if (myField.selectionStart || myField.selectionStart == '0') {
		var startPos = myField.selectionStart;
		var endPos = myField.selectionEnd;
		myField.value = myField.value.substring(0, startPos)
		+ myValue
		+ myField.value.substring(endPos, myField.value.length);
		} else {
		myField.value += myValue;
		}
	}

}

var Validator = {

	'OnlyNumbers' : function (obj){
		val = obj.value;
		aux = "";
        if (isNaN(val)){
            var re = new RegExp("[^0-9]", "g");
            aux = val.replace(re, '');
            aux = (aux.length>0)?aux:0;
			obj.value = parseInt(aux);
		}
		parseInt(obj.value);
	},
	'OnlyDecimals' : function (obj){
		val = obj.value;
		aux = "";
		hasdot = false;
		if (isNaN(val)){
			var re = new RegExp("[^0-9.]", "g");
            aux = val.replace(re, '');
            var aux1 = "";
            for(i=0 ; i < aux.length ; i++){
				if(val.charAt(i)!='.' || !hasdot){
                    aux1 = aux1.concat(val.charAt(i));
                    if(val.charAt(i)=='.'){
                        hasdot = true;
                    }
                }
			}
            aux1 = (aux1.length>0)?aux1:0;
			obj.value = aux1;
		}
	},
	'OnlyDecimalsBefore' : function (event){
		if (((event.keyCode < 48) || (event.keyCode > 57)) && event.keyCode != 46 )
		{
			event.keyCode = 0
		}
		return (event.keyCode);
	}
	,
	'OnlyNumbersBefore' : function (event){
		if ((event.keyCode < 48) || (event.keyCode > 57))
		{
			event.keyCode = 0
		}
		return (event.keyCode);
	}


}

var WebControls = {
	'DatePicker' : function (name){

	},
	'ManageImages' : function (entity,id){
		Page.Popup("index.php?module=admin/imagemanager&entity="+entity+"&id="+id,600,400);
	},
	'ClearValueOnFocus' : function (obj){
		if (!obj.LastValue){
			obj.LastValue = obj.value;
		}
		if (!obj.focused){
			obj.value = "";
		}
		obj.focused = true;
		obj.className = "forminput forminputselected";
		obj.className += " selectedinput";
//		alert(obj.className);
	},
	'ClearValueOnBlur' : function (obj){
		if (obj.value == ""){
			obj.value = obj.LastValue;
			obj.focused = false;
		}
		obj.className = "forminput";
	}
}

var StringFunctions = {
	'Decode' : function (s){
		s = s.replace("&aacute;","á");
		s = s.replace("&Aacute;","Á");
		s = s.replace("&eacute;","é");
		s = s.replace("&Eacute;","É");
		s = s.replace("&iacute;","í");
		s = s.replace("&Iacute;","Í");
		s = s.replace("&oacute;","ó");
		s = s.replace("&Oacute;","Ó");
		s = s.replace("&uacute;","ú");
		s = s.replace("&Uacute;","Ú");
		s = s.replace("&ntilde;","ñ");
		s = s.replace("&Ntilde;","Ñ");

		return (s);
	}
}

WebControls.LastValue = "";

var Convert = {
	'FormatDate' : function (val){
		if (!val) return "";
		return( "" + val.getFullYear() + "-" + (val.getMonth()+1) + "-" + val.getDate() );
	}
}

var LocalizedBox = {

	'Display' : function (imgID,divID){

		objDiv = Page.FindControl(divID);

		if (objDiv.style.display == "inline") {
			LocalizedBox.Hide(imgID,divID);
			return;
		}

		Page.FindControl(imgID).src = "project/images/languages/flags/hideflags.gif";
		objDiv.style.display = "inline";
	},

	'Hide' : function (imgID,divID){
		Page.FindControl(imgID).src = "project/images/languages/flags/displayflags.gif";
		Page.FindControl(divID).style.display = "none";
	}

}

function changeProfile(obj){
	window.location = "index.php?module=admin/changeprofile&idProfile=" + obj.value;
}

function saveAndClone(){
	objForm = document.forms[0];
	objForm.clone.value = 1;
	objForm.submit();
}

function saveAndBack(){
	objForm = document.forms[0];
	objForm.back.value = 1;
	objForm.submit();
}

function closeToolbox(){

	objToolboxContainer = Page.FindControl("toolboxcontainer");
	objToolboxContainer.style.width = "2%";

	objToolbox = Page.FindControl("toolbox");
	objToolbox.style.display = "none";

	objDisplayToolbox = Page.FindControl("displaytoolbox");
	objDisplayToolbox.style.display = "inline";

	objListing = Page.FindControl("listing");
	if (objListing){
		//objListing.style.width = "96%";
        objListing.style.width = "95%";
	}

	objEdit = Page.FindControl("edit");
	if (objEdit){
		//objEdit.style.width = "96%";
        objEdit.style.width = "95%";
	}

}

function showToolbox(){

	objToolboxContainer = Page.FindControl("toolboxcontainer");
	objToolboxContainer.style.width = "15%";

	objListing = Page.FindControl("listing");
	if (objListing){
		objListing.style.width = "82%";
	}

	objEdit = Page.FindControl("edit");
	if (objEdit){
		objEdit.style.width = "82%";
	}

	objToolbox = Page.FindControl("toolbox");
	objToolbox.style.display = "inline";

	objDisplayToolbox = Page.FindControl("displaytoolbox");
	objDisplayToolbox.style.display = "none";

}

function isBoolean(a) {
    return typeof a == 'boolean';
}

function isObject(a) {
    return (a && typeof a == 'object') || isFunction(a);
}

function isString(a) {
    return typeof a == 'string';
}

function isFunction(a) {
    return typeof a == 'function';
}

function setLabel(key,params){
	var url = "index.php?module=admin/modal_setlabel&key="+key+"&params="+params;
    Modal.Window(url,400,500);
}

function saveLabel(){
	var url = "module=admin/ajax_savelabel";
	var params = "";

	var key = Page.FindControl("key").value;

	params += "&keyName="+key;

	for(i=0;i<document.forms.length;i++){
		if (document.forms[i].id == "flabels"){
			objForm = document.forms[i];
			for(j=0;j<objForm.length;j++){
				if (objForm[j].id.indexOf('labelValue')==3){
					//alert(objForm[j].id);
					params += "&"+objForm[j].id+"="+objForm[j].value;
				}
			}
		}
	}
	url += params;
    xmlhttpPost("index.php",url,"resultSaveLabel");
}

function resultSaveLabel(res){
	window.location.reload();
}
