//********************************* Init ************************************************


//*********************************  ************************************************

function cms_submit(frm) {
	frm.action = requester;
	frm.appname.value = appname;
	frm.submit()
}

function cms_showhide(elmid) {
	var elm = document.getElementById(elmid);
	if (elm.style.display == 'none') {
		elm.style.display = '';
	} else {
		elm.style.display = 'none';
	}
}

function cms_popup (url,popuptype,width,height) {
	if (popuptype == 'popup') {
		window.open(url,'popup','width=' + width + ',height=' + height);
	}
	if (popuptype == 'modal') {
		if (window.showModalDialog) {
			window.showModalDialog(url,window,'dialogWidth:' + width + 'px;dialogHeight:' + height + 'px');
		} else {
			window.open(url,'popup','height=' + width + ',width=' + height + ',toolbar=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,modal=yes');
		}
	}
}


function modalWin() {
} 

function set_cookie(name, value, expires, path, domain, secure) {
	path="/";
    document.cookie= name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires.toGMTString() : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
}


//********************************* Editmode ************************************************


function cms_start_popup(trans,p1,p2,p3) {
	var w = 605;
	var h = 500;
	var theLeft=(screen.width/2)-(w/2);
	var theTop=(screen.height/2)-(h/2);

	window.open(cms_url + '&prgname=CMS_START&TRANSACTION=' + trans + '&PARAM1=' + escape(p1) + '&PARAM2=' + escape(p2) + '&PARAM3=' + escape(p3),'popup','status=yes,scrollbars=no,resizable=yes,width=' + w + ',height=' + h + ',top=' + theTop + ',left=' + theLeft);
}

function cms_start_greybox(trans,p1,p2,p3) {
	var w = 605;
	var h = 520;
	var url = cms_url + '&prgname=CMS_START&TRANSACTION=' + trans + '&PARAM1=' + escape(p1) + '&PARAM2=' + escape(p2) + '&PARAM3=' + escape(p3);
	//GB_showCenter(caption, url, /* optional */ height, width, callback_fn)
	GB_showCenter('wizard', url, /* optional */ h, w)
}

function cms_start_url(trans,p1,p2,p3) {
	document.location = cms_url + '&prgname=CMS_START&TRANSACTION=' + escape(trans) + '&PARAM1=' + escape(p1) + '&PARAM2=' + escape(p2) + '&PARAM3=' + escape(p3);
}

// *** Voor het aanroepen zonder POST
function cms_start_jquery_ajax_url(url,result_node) {
	$.ajax ({
		url: url,
		success: xaja_handler,
		type: "GET",
		result_node: result_node,
		jquery: true
	});	
}


function cms_blk_modify(blk_id) {
	cms_start_popup('BLK002',pag_id + '|' + version,blk_id)
}

function cms_blk_create(sec_id,blk_index) {
	cms_start_popup('BLK001',pag_id + '|' + version,sec_id,blk_index);
}

function cms_blk_delete(blk_id) {
	if (confirm('Weet u het zeker?')) 
		cms_start_url('BLK003',pag_id + '|' + version,blk_id);
}

function cms_blk_swap(blk_id,new_index) {
	cms_start_url('BLK004',pag_id + '|' + version,blk_id,new_index);
}

function fck_editor (fieldname, toolbar, height) {
	var sBasePath = '/CM/FCKEditor/' ;
	var oFCKeditor = new FCKeditor( fieldname ) ;
	oFCKeditor.BasePath	= sBasePath ;
	oFCKeditor.Height	= height ;
	if (document.getElementById('container_' + fieldname)) {
		oFCKeditor.Value	= document.getElementById('container_' + fieldname).innerHTML;
	}
	oFCKeditor.ToolbarSet = toolbar;
	oFCKeditor.Config['SkinPath'] = sBasePath + 'editor/skins/office2003/';
//	oFCKeditor.Create();
	oFCKeditor.ReplaceTextarea() 
}


//********************************* XAJA ************************************************

//+ Jonas Raoni Soares Silva
//@ http://jsfromhell.com/geral/utf-8 [v1.0]

UTF8 = {
	encode: function(s){
		for(var c, i = -1, l = (s = s.split("")).length, o = String.fromCharCode; ++i < l;
			s[i] = (c = s[i].charCodeAt(0)) >= 127 ? o(0xc0 | (c >>> 6)) + o(0x80 | (c & 0x3f)) : s[i]
		);
		return s.join("");
	},
	decode: function(s){
		for(var a, b, i = -1, l = (s = s.split("")).length, o = String.fromCharCode, c = "charCodeAt"; ++i < l;
			((a = s[i][c](0)) & 0x80) &&
			(s[i] = (a & 0xfc) == 0xc0 && ((b = s[i + 1][c](0)) & 0xc0) == 0x80 ?
			o(((a & 0x03) << 6) + (b & 0x3f)) : o(128), s[++i] = "")
		);
		return s.join("");
	}
};

// *** De AJAX aanroep voor DOJO
function cms_bind(form,handler,blk_id, result_node) {
	dojo.io.bind({
		url: cms_url,
		load: handler,
		formNode: document.getElementById(form),
		blk_id: blk_id, // this name is a bit silly, something else then blk_id could also be passed as a param.
		form: form,
		result_node: result_node,
		jquery: false
	});
}

// *** De AJAX aanroep voor jQuery
function cms_jquery_ajax(form,handler,blk_id, result_node) {
	$.ajax ({
		url: cms_url,
		success: handler,
		data: $('#' + form).serialize(),
		type: "POST",
		blk_id: blk_id, 
		result_node: result_node,
		jquery: true
	});
}

// AJAX without form
function ajax(transaction, data, handler, blk_id, result_node) {
	data.appname = appname;
	data.transaction = transaction;
	data.prgname = 'CMS_START';
	$.ajax ({
		url: cms_url,
		success: handler,
		data: data,
		type: "POST",
		blk_id: blk_id, 
		result_node: result_node,
		jquery: true
	});
}


// *** AJAX vanuit een FORM in een BLK_ID
function start_ajax(blk_id,trans,layer,p1,p2,p3,p4) {
	document.getElementById(blk_id + '_appname').value = appname;
	document.getElementById(blk_id + '_TRANSACTION').value = trans;
	document.getElementById(blk_id + '_PARAM1').value = (p1 != undefined) ? p1 : '';
	document.getElementById(blk_id + '_PARAM2').value = (p2 != undefined) ? p2 : '';
	document.getElementById(blk_id + '_PARAM3').value = (p3 != undefined) ? p3 : '';
	document.getElementById(blk_id + '_PARAM4').value = (p4 != undefined) ? p4 : '';

	cms_bind(blk_id + '_FORM',xaja_handler,blk_id, layer);
}

function xaja_handler(param1,evaldObj,evt) {
	// reset hourglass
	document.body.style.cursor = 'auto'; 
	if (this.jquery) {
		// jquery passes result to param1
		var tmpArray = param1.split('\\|/');
	} else {
		// dojo passes result to param2
		var tmpArray = evaldObj.split('\\|/');
	}
	// default handler, show results
	document.getElementById(this.result_node).innerHTML = tmpArray[0];

	// errors
	if (tmpArray.length > 1) {
		cms_show_errors(tmpArray[1]);
	}
	
	// eval script
	$("script",$("#" + this.result_node)).each(function(){eval(this.innerHTML)});
	
	// apply fancybox
	$(".fancybox").each(smart_fancy);	
}

function cms_show_errors (errorstring) {
	var temp_array = errorstring.split('||');
	for (i=temp_array.length - 1; i>=0; i--) {
		var obj_id = temp_array[i].split('|')[0];
		if (document.getElementById(obj_id)) {
			if (document.getElementById(obj_id).style.display != 'none') {
				document.getElementById(obj_id).className = 'cms_errorfield';
				document.getElementById(obj_id).focus();
			}
		}
	}
}

//********* POLL **********

function poll_vote(blk_id) {
	document.getElementById('appname_' + blk_id).value = appname;
	cms_bind('FORM_' + blk_id,poll_handler,blk_id,'FORM_' + blk_id);
}

function poll_handler(type,evaldObj,evt) {
	// show results
	document.getElementById(this.result_node).innerHTML = evaldObj;

	//remember vote for 2 months
	var d = new Date(); 
	d.setTime(d.getTime() + (60*24*60*60*1000));
	set_cookie('POLL_' + this.blk_id,'Y',d,'/');
}

//********* form2mail **********

function formmail_submit(blk_id, page, type) {
	// upload file?
	if (document.getElementById('FILE1')) {
		//dojo.require("dojo.io.IframeIO");
		var filename_string = '';
		var filename = document.getElementById('FILE1').value;
		if (filename != '') {
			filename = filename.replace(/\//g, "\\");
			var tmp_array = filename.split('\\');
			filename_string += tmp_array[tmp_array.length - 1] + ';';
		} else {
			filename_string += ';';
		}
		document.getElementById('filenames').value = filename_string;
	}
	
	var objForm = document.getElementById('FORM_' + blk_id);
	document.getElementById('dom_identifier_' + blk_id).value = dom_identifier;
	document.getElementById('appname_' + blk_id).value = appname;
	// show text or show page?
	if (type == 'P') {
		// submit normally, target is a page
		objForm.action = page + '.cmf';
		objForm.submit();
	} else {
		// only show text, submit by AJAX
		cms_bind('FORM_' + blk_id,xaja_handler,blk_id,blk_id);
	}
}


//********* search **********

function search_submit(blk_id) {
	var target_layer = 'RESULT_' + blk_id;
	// results elsewhere?
	if (document.getElementById('SEARCHRESULT')) {
		target_layer = 'SEARCHRESULT';
	}
	
	document.getElementById('appname_' + blk_id).value = appname;
	cms_bind('FORM_' + blk_id,xaja_handler,blk_id,target_layer);
}

//********* login **********

function login_handler(type,evaldObj,evt) {
	// login handler
	var tmparray = evaldObj.split('\\|/');
	if (tmparray.length>1) {
		//success, write cookie
		set_cookie('CMSSESSIONID', tmparray[1]);
		window.status=tmparray[1];
		// go to new page?
		if (tmparray.length>2) {
			document.location = tmparray[2];
		}
	}
	// show result
	document.getElementById(this.result_node).innerHTML = tmparray[0];
}

function login_submit(blk_id) {
	document.getElementById(blk_id + '_appname').value = appname;
	document.getElementById(blk_id + '_transaction').value = '';
	document.getElementById(blk_id + '_prgname').value = 'CMS_BLOCK_LOGIN';
	document.getElementById(blk_id + '_FORM').action = requester;
	document.getElementById(blk_id + '_FORM').submit();
}

function logout_submit(blk_id) {
	document.getElementById(blk_id + '_appname').value = appname;
	document.getElementById(blk_id + '_transaction').value = '';
	document.getElementById(blk_id + '_prgname').value = 'CMS_BLOCK_LOGOUT';
	document.getElementById(blk_id + '_FORM').action = requester;
	document.getElementById(blk_id + '_FORM').submit();
}

//********* register **********

function register_submit(blk_id) {
	document.getElementById('appname_' + blk_id).value = appname;
	cms_bind('FORM_' + blk_id,xaja_handler,blk_id,blk_id);
}

//********* kalender **********

function kalender_submit(blk_id,d) {
	document.getElementById('appname_' + blk_id).value = appname;
	document.getElementById('date_' + blk_id).value = d;
	cms_bind('FORM_' + blk_id,xaja_handler,blk_id,blk_id + '_content');
}

//********* forum **********

function forum(blk_id,tra_id,p1,p2,p3) {
	// show the browser is doing somthing
	document.body.style.cursor = 'wait'; // hourglass
//	document.getElementById(blk_id).className = 'loading'; 
	
	// init form
	$('#appname_' + blk_id).val(appname);
	$('#transaction_' + blk_id).val(tra_id);
	$('#' + blk_id + '_PARAM1').val((p1 != undefined) ? p1 : '');
	$('#' + blk_id + '_PARAM2').val((p2 != undefined) ? p2 : '');
	$('#' + blk_id + '_PARAM3').val((p3 != undefined) ? p3 : '');
	
	// bind form
	cms_bind('FORM_' + blk_id,xaja_handler,blk_id,blk_id);
	
	return false;
}

function forum_handler(type,evaldObj,evt) {
	// reset hourglass
	document.body.style.cursor = 'auto'; 

	// show results (outerHTML!)
	document.getElementById(this.result_node).outerHTML = evaldObj;
}

function forum_show_form(blk_id) {
	document.getElementById('POST_' + blk_id).style.display = '';
}

//********* fotoboek **********

function fotoboek_submit(blk_id,offset,modus) {
	$('#appname_' + blk_id).val(appname);
	$('#' + blk_id + '_offset' ).val(offset);
	$('#' + blk_id + '_modus' ).val(modus);
	cms_bind('FORM_' + blk_id,xaja_handler,blk_id,blk_id + '_content');
}

//********* mouseover **********

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

//************* tabs **********
function cms_showtab(arr,tab) {
	// hide
	for(var i=0; i<arr.length; i++) {
		dojo.byId(arr[i] + '_content').style.display = 'none';
		dojo.byId(arr[i]).className = 'cms_tab';
	}
	// show
	dojo.byId(tab + '_content').style.display = '';
	dojo.byId(tab).className = 'cms_tab_selected';
}

// fancybox
function smart_fancy (i) {
	var fancybox_options = "'overlayShow': true ";
	var width = $(this).attr('box_width');
	if (width != undefined) {
		fancybox_options += ", 'frameWidth': " + width;
	}
	var height = $(this).attr('box_height');
	if (height != undefined) {
		fancybox_options += ", 'frameHeight': " + height;
	}

	$(this).fancybox(eval ("({" + fancybox_options + "})") );
}

function smart_fancy13 (i) {
	var fancybox_options = "overlayShow: true";
	
	// if not an image, use iframe
	var extension = $(this).attr('href');
	extension = extension.split('.');
	extension = extension[extension.length - 1].toLowerCase()
	if (extension != 'jpg' && extension != 'jpeg' && extension != 'png' && extension != 'gif') {
		fancybox_options += ", type:'iframe'";
	}
	
	var width = $(this).attr('box_width');
	if (width != undefined) {
		fancybox_options += ", width: " + width;
	}
	var height = $(this).attr('box_height');
	if (height != undefined) {
		fancybox_options += ", height: " + height;
	}

	$(this).fancybox(eval ("({" + fancybox_options + "})") );
}


