/* This javascript file is build for www.teamperformanceexchange.nl
 * Only used when logged on
 * @version 12-03-2011
 * @author Jeroen de Jong / deJong-IT
 * http://www.dejong-it.nl
 */

$(function () {
	// Ping after 1 minute
	window.setTimeout(Ping,60000);

	fixcheckbox();

	$('.nocontext').bind("contextmenu", function(e) {
		e.preventDefault();
	});
});

function fixcheckbox() {
	// This will create a selectall function
	$('.checkall').click(function () {
		$(this).parents('fieldset:eq(0)').find(':checkbox').attr('checked', this.checked);
	});

	// This will create a ShiftClick set of all the checkboxes on a page.
	$('input[type=checkbox]').shiftClick();
}

// Show msgbox
function msgbox(msg,type,title,dialog_buttons,hideclosebutton) {
	if (!dialog_buttons) {
		var dialog_buttons = {};
		dialog_buttons[lang.Close] = function(){$(this).dialog('close');}
	}
	if (!type) var type = 'info';

		$('<div class="'+type+'">'+msg+'</div>').dialog({
			modal: true,
			hide: 'slow',
			buttons: dialog_buttons,
			title: title,
			width:'400px',
			closeOnEscape: !hideclosebutton,
			open: function () {
				if (hideclosebutton) $(this).parent().children().children('.ui-dialog-titlebar-close').hide();
			},
			close: function(ev, ui) {$(this).remove();}
		});
}

// Show msgbox using AJAX
function msgboxajax(url,type,title,dialog_buttons,hideclosebutton) {
	if (!dialog_buttons) {
		var dialog_buttons = {};
		dialog_buttons[lang.Close] = function(){$(this).dialog('close');}
	}
	if (!type) var type = 'info';

		$('<div class="'+type+'"><img src="/images/ajax-loader.gif" alt="Loading, please wait" /></div>').dialog({
			modal: true,
			hide: 'slow',
			buttons: dialog_buttons,
			title: title,
			width:'450px',
			closeOnEscape: !hideclosebutton,
			open: function () {
				$(this).load(url,function() {
					$(this).dialog('option', 'position', 'center');
				});
				if (hideclosebutton) $(this).parent().children().children('.ui-dialog-titlebar-close').hide();
			},
			close: function(ev, ui) {$(this).remove();}
		});
}

// Ask user and delete an item
function DeleteItem(msg,page,id,extra) {
	if (!extra) extra = '';
	var dialog_buttons = {};
	dialog_buttons[lang.Yes] = function(){$(this).dialog('close');window.location.href='/index.php?page='+page+'&action=delete&id='+id+extra;}
	dialog_buttons[lang.No] = function(){$(this).dialog('close');;}
	msgbox(msg,'confirm',lang.Delete,dialog_buttons,false)
}

// Change password using AJAX
function ChangePassword(title, step) {
	if (!step) var step = 1;

	// 1st step, show form
	if (step == 1) {
		var dialog_buttons = {};
		dialog_buttons[lang.Save] = function(){ChangePassword(title,2);$(this).remove();}
		dialog_buttons[lang.Cancel] = function(){$(this).dialog('close');}
		msgboxajax('/ajax/changepassword.php','security',title,dialog_buttons,false);
	}

	// 2nd step, validate
	if (step == 2) {
		$.post('/ajax/changepassword.php', 
		{PWOld:$("#PWOld").val(),PWNew1:$("#PWNew1").val(),PWNew2:$("#PWNew2").val(),},
		function(data) {

			if (data.result) {
				// Password Changed, show success message
				msgbox(data.msg,'info',title);
			} else {
				// Show the error, and redirect back to the 1st step
				var dialog_buttons = {};
				dialog_buttons[lang.Close] = function(){$(this).remove();ChangePassword(title,1);}
				msgbox(data.msg,'error',title,dialog_buttons);
			}
		},'json');
	}
}

// Ask for a delimiter and redirect to export page
function askdelimiter(link,msg,title,Comma,Semicolon,Tab) {

	var dialog_buttons = {};
	dialog_buttons[Comma] = function(){$(this).dialog('close');window.location.href=link+',';}
	dialog_buttons[Semicolon] = function(){$(this).dialog('close');window.location.href=link+';';}
	dialog_buttons[Tab] = function(){$(this).dialog('close');window.location.href=link+'TAB';}
	dialog_buttons[lang.Cancel] = function(){$(this).dialog('close');}

	$('<div class="question">'+msg+'</div>').dialog({
		modal: true,
		hide: 'slow',
		width:'400px',
		buttons: dialog_buttons,
		title: title
	});
}

function SubmitForm(form,resultid,url) {
	$.ajax({
		type: 'POST',
		url: url,
		data: $(form).serialize(),
		cache: false,
		success: function(data){
			$(resultid).html(data);
		},
		error:function (xhr, ajaxOptions, thrownError){
			msgbox(xhr.status+' '+thrownError,'error',title);
		}
	});

	return false;
}

function NewUser(title) {
	var dialog_buttons = {};
	dialog_buttons[lang.Next] = function(){SubmitForm('#newuser','#newuser-form','ajax/newuser.php');}
	dialog_buttons[lang.Cancel] = function(){$(this).dialog('close');}

		$('<div class="user" id="newuserdialog"><img src="/images/ajax-loader.gif" alt="Loading, please wait" /></div>').dialog({
			modal: true,
			hide: 'slow',
			buttons: dialog_buttons,
			title: title,
			width:'450px',
			open: function () {
				$(this).load('/ajax/newuser.php');
			},
			close: function(ev, ui) {$(this).remove();}
		});
}

// Checkbox Shift-Select
(function($) {
	$.fn.shiftClick = function() {
		var lastSelected;
		var checkBoxes = $(this);

		this.each(function() {
			$(this).click(function(ev) {
				if (ev.shiftKey) {
					var last = checkBoxes.index(lastSelected);
					var first = checkBoxes.index(this);

					var start = Math.min(first, last);
					var end = Math.max(first, last);

					var chk = lastSelected.checked;
					for (var i = start; i < end; i++) {
						checkBoxes[i].checked = chk;
					}
				} else {
					lastSelected = this;
				}
			})
		});
	};
})(jQuery);


// Check if flash version is at least a,b,c
function checkFlashVersion(a,b,c){
	var version = getFlashVersion().split(',');
	if (version[0]>a) return true;
	if (version[0]<a) return false;

	if (version[1]>b) return true;
	if (version[1]<b) return false;

	if (version[2]>=c) return true;
	if (version[2]<c) return false;
}

// Get the current flash version
function getFlashVersion(){
	// ie
	try {
		try {
		// avo	id fp6 minor version lookup issues
		// see: http://blog.deconcept.com/2006/01/11/getvariable-setvariable-crash-internet-explorer-flash-6/
		var axo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.6');
		try { axo.AllowScriptAccess = 'always'; }
		catch(e) { return '6,0,0'; }
		} catch(e) {}
		return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\D+/g, ',').match(/^,?(.+),?$/)[1];
	// other browsers
	} catch(e) {
		try {
			if(navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin){
				return (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]).description.replace(/\D+/g, ",").match(/^,?(.+),?$/)[1];
			}
		} catch(e) {}
	}
	return '0,0,0';
}


//function inputbox(msg,title,value,callback) {

function editportval(id,val,txt) {
	var dialog_buttons = {};
	dialog_buttons[lang.Cancel] = function(){$(this).dialog('close');}
	dialog_buttons[lang.Save] = function(){
		var newval = $('#JinputVal').val();
		$.ajax({
			type: 'POST',
			url: '/ajax/portfolio.php',
			data: {id: id,value:newval,action:'change'},
			success: function(data) {
				if (data=='success') {
					$('#val-'+id).html(newval);
				} else {
					alert(data);
				}
			}
		});
		$(this).dialog('close');
	};

	q = $('<div class="question">'+txt+'<form onsubmit="return false;"><input type="text" name="JinputVal" id="JinputVal" class="text ui-widget-content ui-corner-all" value='+val+'></form></div>');
	q.dialog({
		modal: true,
		hide: 'slow',
		buttons: dialog_buttons,
		title: 'test',
		width:'400px',
		closeOnEscape: true,
		close: function(ev, ui) {$(this).remove();}
	});
}


function removeportval(id) {
	$('#row-'+id).css('background-color','#ddaaaa');

	$.ajax({
		type: 'POST',
		url: '/ajax/portfolio.php',
		data: {id: id,action:'remove'},
		success: function(data) {
			if (data=='success') {
				$('#row-'+id).fadeOut('slow', function() {
					$('#row-'+id).remove();
				});
			} else {
				alert(data);
			}
		}
	});
}


function AddColorElement() {
	var r = '-'+(Math.floor(Math.random()*10000)+1);

	// create a random color
	color=''
	for (i=0;i<6;i++){
		color = color+Math.round(Math.random()*15).toString(16);
	}

	var d = document.getElementById('coltable');
	var tr = document.createElement('tr');
	tr.setAttribute('id','tr-'+r);
	var td = document.createElement('td');
	td.innerHTML = '<input type="text" name="color-'+r+'" id="color-'+r+'" value="'+color+'" class="color ui-corner-all" />';
	tr.appendChild(td);
	var td = document.createElement('td');
	td.innerHTML = '<input type="text" name="min-'+r+'" value="0.00" />';
	tr.appendChild(td);
	var td = document.createElement('td');
	td.innerHTML = '<input type="text" name="max-'+r+'" value="0.00" />';
	tr.appendChild(td);
	var td = document.createElement('td');
	td.innerHTML = '<a href="#" onclick="$(\'#tr-'+r+'\').fadeOut(function() {$(\'#tr-'+r+'\').remove();});return false;"><img src="/images/delete.png" class="sign" alt="Delete" /></a>';
	tr.appendChild(td);
	d.appendChild(tr);

	// Create color picker
	var myPicker = new jscolor.color(document.getElementById('color-'+r), {});

	//d.toString(16);
	myPicker.fromString(color);
}

function reloadusers(params) {
	newparams = {'teamid':$('#teamid').val(),groups:1,users:1,selectself:0,type:'default'}
	newparams = $.extend({}, newparams, params);
	
	$.ajax({
		url: '/ajax/reloadusers.php',
		type: 'POST',
		dataType: 'json',
		data: newparams,
		success: function(data) {
			if (data.status==true) {
				$('#reloadusersplaceholder').html(data.html);
				fixcheckbox();
			} else {
				alert(data.msg);
			}
		}
	});
}

// auto ping
function Ping() {
	$.ajax('/ajax/ping.php', {cache:false});
	// re-ping after 1 minute
	window.setTimeout(Ping,60000);
}

