var IS_OPERA = (navigator.userAgent.toLowerCase().indexOf("opera") != -1);
var IS_IE = (!IS_OPERA && navigator.appName.indexOf("Microsoft") != -1);
var IS_FIREFOX = (navigator.userAgent.toLowerCase().indexOf("firefox") != -1);
var IS_SAFARI = (!IS_IE && navigator.userAgent.toLowerCase().indexOf("safari") != -1);
var IS_WIN = (navigator.appVersion.toLowerCase().indexOf("win") != -1);

function swallowPaste( e ) {
    var keynum;
    var keychar;

    if( window.event ) {// IE
        keynum = e.keyCode;
    } else if( e.which ) {// Netscape/Firefox/Opera
        keynum = e.which;
    }

    keychar = String.fromCharCode(keynum);
    if( keychar == 'v' || keychar == 'V' ) {
        if( e.ctrlKey ) {
            return false;
        }
    }

    return true;
}

function calculateAbsoluteLeft( o ) {
    var left = 0;
    while( o != null ) {
        left += o.offsetLeft;
        o = o.offsetParent;
    }
    return left;
}

function calculateAbsoluteTop( o ) {
    var top = 0;
    while( o != null ) {
        top += o.offsetTop;
        o = o.offsetParent;
    }
    return top;
}

function submitLink( link, event ) {
    if( window.event ) {
        event = window.event;
    }
    if(event.keyCode==32) {
        link.click();
        event.cancelBubble = true;
    }
}

function submitForm( form, event ) {
    /*if( window.event ) {
        event = window.event;
    }

    if(event.keyCode==13) {
        form.submit();
    }*/
}

function QueryStringToObject(str, key){
	if (str.indexOf('=') == -1) return null;	// not a query string format
	if (str.indexOf('?') == 0) str = str.substring(1);
	var obj = {}, pairs = str.split('&'), kv;
	for (var i=0, leni=pairs.length; i<leni; i++){
		kv = pairs[i].split('=');
		if (kv.length != 2) continue;
		obj[kv[0]] = kv[1];
	}
	return key ? obj[key] : obj;
}

function ObjectToQueryString(obj){
	var result = [], key;
	for (key in obj){
		result.push(result.length==0 ? '?' : '&', key, '=', obj[key]);
	}
	return result.join('');
}

function changeLanguage(lang){
	var params = QueryStringToObject(location.search, null) || {};
	params.theme = lang;
	window.location = location.pathname + ObjectToQueryString(params);
}

// ===== language menu - START =====
var languageMenuTimer = null;
function openLanguagesMenu(){
	clearTimeout(languageMenuTimer);
	var langMenu = document.getElementById('langMenu');
	var leftPipe = document.getElementById('leftPipe');
	langMenu.style.display = 'block';
	leftPipe.style.color = '#7E9DB9';
}

function closeLanguageMenu(){
	languageMenuTimer = setTimeout(_closeLanguageMenu, 150);
}

function _closeLanguageMenu(){
	var langMenu = document.getElementById('langMenu');
	var leftPipe = document.getElementById('leftPipe');
	langMenu.style.display = 'none';
	leftPipe.style.color = '#FFFFFF';
}

function overLanguageMenu(){
	clearTimeout(languageMenuTimer);
}
// ===== language menu - END =====

if (document.attachEvent){
	document.attachEvent('onclick', closeMenus);
} else {
	document.addEventListener('click', closeMenus, true);
}

function closeMenus(event){
	var  menus = [];
	var langMenu = document.getElementById('langMenu');
	var colorPickerMenu = document.getElementById('colorPickerDiv');

	// language menu
	if (langMenu && langMenu.style.display != 'none'){
		menus.push(langMenu);
	}
	// calendar menu
	else if (typeof calendarObjForForm != 'undefined' && calendarObjForForm.divElement && calendarObjForForm.divElement.style.display != 'none'){
		menus.push(calendarObjForForm.divElement);
	}

	else if (colorPickerMenu && colorPickerMenu.style.display != 'none'){
		menus.push(colorPickerMenu);
	}

	if (menus.length == 0) return;

	if (!event) event = window.event;
	var el = event.srcElement || event.target;
	while (el && el.tagName.toLowerCase() != 'body'){
		if (inArray(el, menus) || el.className.match(/^DHTMLSuite_calendar_/) || el.className == 'international' || el.id == 'startDate' || el.id == 'stopDate' || el.id == 'pick2') return;
		el = el.parentNode;
	}

	for (var i=0; i<menus.length; i++){
		menus[i].style.display = 'none';
	}
}

// check if item is inside arr
function inArray(item, arr){
	for (var i=0, leni=arr.length; i<leni; i++) if (item == arr[i]) return true;
	return false;
}

function hideDemoBubble(){
	var el = document.getElementById('demoBubbleContents');
	if (el) el.style.display = 'none';
}
