// Oi! User Interface JavaScript Bundle 1.1
// This is a bundle of fucntions that will help build a user friendly interface
// 2007 Robjong
//

/* GENERAL */
var hvisible = false;
var htitle = 'Hint Title';
var hcontent = 'The hint goes here....';

function addGenHint(longID, hhead, hmessage)
{
	hcontent = hcontent + '<strong>' + hhead + ':</strong> ' + hmessage + '<br />';
	document.getElementById(longID).innerHTML = hcontent;
}

function delGenHint(longID)
{
	hcontent = '';
	document.getElementById(longID).innerHTML = hcontent;
}

function setGenHintTitle(tmsg)
{
	htitle = tmsg;
}

function hideGenHint(longID)
{
	hvisible = false;
	document.getElementById(longID).style.display = 'none';
	document.getElementById(longID).innerHTML = '';
}

function showGenHint(longID)
{
	hvisible = true;
	document.getElementById(longID).style.display = 'block';
	document.getElementById(longID).innerHTML = '<div id="ui_js_hint_top_head">' + htitle + '</div><br />'
	+ hcontent + '<div id="ui_js_hint_top_foot"><a href="javascript:hideGenHint(\'' + longID + '\')">close</a></div>';
}

function toggleGenHint(longID)
{
	if(hvisible == true)
	{
		hvisible = false;
		document.getElementById(longID).style.display = 'none';
		document.getElementById(longID).innerHTML = '';
	}
	else
	{
		hvisible = true;
		document.getElementById(longID).style.display = 'block';
		document.getElementById(longID).innerHTML = '<div id="ui_js_hint_top_head">' + htitle + '</div><br />'
		+ hcontent + '<div id="ui_js_hint_top_foot"><a href="javascript:hideGenHint(\'' + longID + '\')">close</a></div>';
	}
}


// General hint, sethint(title, msg) to set vars then showgenmsg() and hidegenmsg()
function hideHint(divlong)
{
	document.getElementById(divlong).style.display = 'none';
	document.getElementById(divlong).innerHTML = '';
}

function showHint(divlong, headmsg, mssg)
{
	document.getElementById(divlong).style.display = 'block';
	var hintstring = '<div id="ui_js_hint_top_head">'
					+headmsg + '</div><br />' + mssg
					+'<div id="ui_js_hint_top_foot"><a href="javascript:hideHint(ui_js_hint_top)">close</a></div>';
	document.getElementById(divlong).innerHTML = hintstring;
}

/* MENU */
/*var allowMultipleMenus = false;
var showHelpBar = true;*/

function showMenu()
{
	for(i = 1; i < 999; i++)
	{
		var menuDiv = document.getElementById('antwoord[' + i + ']');
		menuDiv.style.display = 'block';
	}
}

function hideMenu()
{
	for(i = 1; i < 999; i++)
	{
		var menuDiv = document.getElementById('antwoord[' + i + ']');
		if(!menuDiv)
		{
			return true;
		}
		else
		{
			menuDiv.style.display = 'none';
		}
	}
}

function toggleShowMenu(id)
{
    var menuDiv = document.getElementById('antwoord[' + id + ']');
    if(menuDiv)
	{
        if(allowMultipleMenus == false)
		{
			hideMenu(id);
		}
        if(menuDiv.style.display == 'none')
		{
            menuDiv.style.display = 'block';
        }
		else
		{
            menuDiv.style.display = 'none';
        }
    }
	/*else
	{
        alert('Invalid Menu');
    }*/
}

/* ui editor */
function getSelText(formlong)
{
	var txt = '';
	if(window.getSelection)
	{
		txt = window.getSelection();
	}
	else if(document.getSelection)
	{
		txt = document.getSelection();
	}
	else if(form.getSelection)
	{
		txt = form.getSelection();
	}
	else if(document.selection)
	{
		txt = document.selection.createRange().text;
	}
	else return;
	formlong.value += txt;
}

function selectText(long)
{
	if(long.value == "")
	{
		// alert('No text to select.')
	}
	else
	{
		long.focus();
		long.select();
		if(document.all)
		{
			long.createTextRange().execCommand("Copy");
			alert("Text selected and put on clipboard, paste with CTRL+V.");
		}
		else
		{
			alert("Text selected, you can put it on clipboard using CTRL+C and then paste it with CTRL+V.");
		}
	}
}

function submitForm()
{
	document.getElementById("myForm").submit();
}

// character counter
function countChars(fieldname, outwin, formnr)
{
	var count_output = document.forms[formnr].elements[outwin];
	count_output.value =  fieldname.value.length;
}

// character counter
function charCount(fieldname, maxlength, message, outwin, formnr)
{
	var count_output = document.forms[formnr].elements[outwin];
	if (fieldname.value.length > maxlength)
	{
		fieldname.value = fieldname.value.substring(0, maxlength);
		alert(message);
	}
	else
	{
		count_output.value = maxlength - fieldname.value.length;
	}
}

function showJSBAR()
{
	if (vidPaneID.style.display == 'block')
	{
		vidPaneID.style.display = 'none';
		vidPaneID.innerHTML = '';
	}
	else
	{
		vidPaneID.style.display = 'block';
		vidPaneID.innerHTML = '<a href="javascript:showJSBAR()">CLOSE</A>';
		var vidstring = '<center></center>';
		/*+ '<div class="ui_js_helpbar_head"> &nbsp;Oi! JS HelpBar<div class="ui_js_helpbar_s">'
		+ '<input type="button" value="Selected to Text" onmousedown="getSelText(document.postform.news)" id="ui_js_supp_btn" /> &nbsp;'
		+ '<em>Title</em>: <input type="text" disabled="disabled" name="countOutput2" size="2" value="255" /> &nbsp;'
		+ '<input type="button" value="Select Title" onclick="selectText(this.form.title)" id="ui_js_supp_btn" /> &nbsp;'
		+ '<em>News</em>: <input type="text" disabled="disabled" name="countOutput" size="2" value="50000" /> &nbsp; '
		+ '<input type="button" value="Select News" onclick="selectText(this.form.news)" id="ui_js_supp_btn" /> &nbsp;'
		+ '</div></div><br />'
		+'</center>';*/
		vidPaneID.innerHTML += vidstring;
	}
}


/* Drag n Drop window */
var selObj = null;

function moveHandler(e)
{
	if (e == null)
	{
		e = window.event
	}

	if(e.button<=1&&dragOK)
	{
		selObj.style.left = e.clientX - dragXoffset + 'px';
		selObj.style.top = e.clientY - dragYoffset + 'px';
		return false;
	}

}

function cleanup(e)
{
	document.onmousemove = null;
	document.onmouseup = null;
	selObj.style.cursor = orgCursor;
	dragOK=false;
}

function dragHandler(e)
{

	var htype = '-moz-grabbing';

	if(e == null)
	{
		e = window.event; htype='move';
	}

	var target = e.target != null ? e.target : e.srcElement;
	selObj = target;
	orgCursor = target.style.cursor;

	if(target.className == "vidFrame" || target.className == "moveable")
	{
		target.style.cursor = htype;
		dragOK = true;
		dragXoffset = e.clientX - parseInt(selObj.style.left);
		dragYoffset = e.clientY - parseInt(selObj.style.top);
		document.onmousemove = moveHandler;
		document.onmouseup = cleanup;
		return false;
	}

}


/* Common Funcs */

function str_replace(srch, rep, cstr)
{
	return cstr.replace(srch, rep);
}

function isNumeric(x)
{
	var RegExp = /(\d*)/;
	var result = x.match(RegExp);
	return result;
}

function numExists(x, str)
{
	var RegExp = /(x)(\.?)(\d*)$/;
	var result = str.match(RegExp);
	return result;
}

/* Cookie Preferences*/
function prefsAddItem(caval, caname, cadelim)
{
	cacontent = cookieGet(caname);
	cacontent = str_replace(2 + cadelim, '', cacontent);
	cacontent = cacontent + cadelim + caval
	cookieDelete(caname, '/', '');
	cookieSet(caname, cacontent, '', '/', '', '');
	//alert(cacontent);
}

function prefsDelItem(cdval, cdname, cddelim)
{
	cdcontent = cookieGet(cdname);
	cdcontent = str_replace(cdval + cddelim, '', cdcontent);
	cookieDelete(cdname, '/', '');
	cookieSet(cdname, cdcontent, '', '/', '', '');
	//alert(cdcontent);
}

function prefsToggleItem(ctval, ctname, ctdelim)
{
	ctcontent = cookieGet(ctname);
	if(ctcontent.match(ctval))
	{
		prefsDelItem(ctval, ctname, ctdelim);
		//alert("Jajajajaja");
	}
	else
	{
		prefsAddItem(ctval, ctname, ctdelim);
		//alert("Neneneenne");
	}
}

/* Cookies */

function cookieSet(name, value, expires, path, domain, secure)
{
	var today = new Date();
	today.setTime(today.getTime());

	if(expires)
	{
		expires = expires * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date(today.getTime() + (expires));

	document.cookie = name + "=" +escape(value) +
	((expires) ? ";expires=" + expires_date.toGMTString() : "") +
	((path) ? ";path=" + path : "") +
	((domain) ? ";domain=" + domain : "") +
	((secure) ? ";secure" : "");
}

function cookieGet(check_name)
{
	var a_all_cookies = document.cookie.split(';');
	var a_temp_cookie = '';
	var cookie_name = '';
	var cookie_value = '';
	var b_cookie_found = false;

	for(i = 0; i < a_all_cookies.length; i++)
	{
		a_temp_cookie = a_all_cookies[i].split('=');
		cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');

		if(cookie_name == check_name)
		{
			b_cookie_found = true;
			if(a_temp_cookie.length > 1)
			{
				cookie_value = unescape(a_temp_cookie[1].replace(/^\s+|\s+$/g, ''));
			}
			return cookie_value;
			break;
		}
		a_temp_cookie = null;
		cookie_name = '';
	}
	if(!b_cookie_found)
	{
		return null;
	}
}

function cookieDelete(name, path, domain)
{
	if(cookieGet(name)) document.cookie = name + "=" +
	((path) ? ";path=" + path : "") +
	((domain) ? ";domain=" + domain : "") +
	";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}

function inCookie(x, cContent, delim)
{
	parts = cContent.split(delim);
	for(i = 0; i < cContent.length; i++)
	{
		//debug//alert(parts[i]);
		if(parts[i] == x)
		{
			return true;
		}
	}
	return false;
}