function $(id) {
    return document.getElementById(id);
}

function hasClass(e, cls) {
    
    return e.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
    
}

function addClass(e, cls) {
    if (!hasClass(e, cls)) {
        e.className += ' '+cls;
    }
}

function removeClass(e, cls) {
    if (hasClass(e, cls)) {
        var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
        e.className = e.className.replace(reg,' ');
    }
}

function checkPrices(name, prefix, values) {
    var numOfChecked = 0;
        
    els = document.getElementsByName(name);
    
    for (i = 0; i < els.length; i++) {
        if (els.item(i).checked) {
            numOfChecked++;
        }
    }
    
    var checkedNumber = 0;
    	
	for (i = 0; i < els.length; i++) {
        if (!els.item(i).checked) {
        	value = values[numOfChecked + 1] ? values[numOfChecked + 1] : 0;
            $(prefix + "_" + els.item(i).value + "_value").value = value;
        } else {
        	checkedNumber++;
        	value = values[checkedNumber] ? values[checkedNumber] : 0;
        	$(prefix + "_" + els.item(i).value + "_value").value = value;
        }
    }
}

function disableRival(checkbox, id, boss, prefix) {
    var rivals = new Array('premium', 'starter', 'basic');
    
    if (checkbox.checked) {
        for (i = 0; i < rivals.length; i++) {
            if (boss != rivals[i] + prefix) {
                $(rivals[i] + prefix + "_" + id).disabled = 'disabled';
            }
        }
    } else {
        for (i = 0; i < rivals.length; i++) {
            $(rivals[i] + prefix + "_" + id).disabled = '';
        }
    }
}

function disableRivals(checkboxes, name) {
    var els = document.getElementsByName(checkboxes);
    var checked = false;
    
    for (i = 0; i < els.length; i++) {
		if (els.item(i).checked) {
			checked = true;
		}
	}
	
	var els = document.getElementsByName(name);
    
    if (checked) {
    	for (i = 0; i < els.length; i++) {
    		els.item(i).disabled = 'disabled';
    	}
    } else {
    	for (i = 0; i < els.length; i++) {
        	els.item(i).disabled = '';
    	}
	}
}

function recalculate() {
    var sum = 0;
    
    els = document.getElementsByName('premium[]');
    
    for (i = 0; i < els.length; i++) {
        if (els.item(i).checked) {
            sum += parseFloat($('premium' + "_" + els.item(i).value + "_value").value);
        }
    }
    
    els = document.getElementsByName('starter[]');
    
    for (i = 0; i < els.length; i++) {
        if (els.item(i).checked) {
            sum += parseFloat($('starter' + "_" + els.item(i).value + "_value").value);
        }
    }
    
    $('total_value').value = sum;
    
    var sum = 0;
    
    els = document.getElementsByName('premium_lo[]');
    
    for (i = 0; i < els.length; i++) {
        if (els.item(i).checked) {
            sum += parseFloat($('premium_lo' + "_" + els.item(i).value + "_value").value);
        }
    }
    
    els = document.getElementsByName('starter_lo[]');
    
    for (i = 0; i < els.length; i++) {
        if (els.item(i).checked) {
            sum += parseFloat($('starter_lo' + "_" + els.item(i).value + "_value").value);
        }
    }
    
    $('total_value_lo').value = sum;
}

/*********************** TOOLTIP PART ****************************/
var IE = document.all ? true : false;

if (!IE) {
    document.captureEvents(Event.MOUSEMOVE);
}

document.onmousemove = getMouseXY;

var tempX = 0;
var tempY = 0;

function getMouseXY(e) {
    if (IE) { // grab the x-y pos.s if browser is IE
        try {
            if (!document.body.scrollTop) {
                throw "error";
            }
            
            tempX = event.clientX + document.body.scrollLeft
            tempY = event.clientY + document.body.scrollTop
        } catch (e) {
            tempX = event.clientX + document.documentElement.scrollLeft
            tempY = event.clientY + document.documentElement.scrollTop
        }
    } else { // grab the x-y pos.s if browser is NS
        tempX = e.pageX
        tempY = e.pageY
    }
    // catch possible negative values in NS4
    if (tempX < 0) {
        tempX = 0
    }
    if (tempY < 0) {
        tempY = 0
    }
    
    return true;
}

function showTooltipFE(id) {
    object = document.getElementById(id);
    
    object.style.top = tempY + 25 + "px";
    object.style.left = tempX - 50 + "px";
    object.style.display = "block";
    
    document.body.appendChild(object);
    
    object = document.getElementById(id+'s');
    
    object.style.top = tempY + 25 + "px";
    object.style.left = tempX - 50 + "px";
    object.style.display = "block";

    document.body.appendChild(object);
}

function hideTooltipFE(id) {
    object = document.getElementById(id);
    
    object.style.display = "none";
    
    object = document.getElementById(id + 's');
    
    object.style.display = "none";
}
/*********************** END OF TOOLTIP PART ****************************/

