/*****************************
**   Misc functions
******************************/
function number_format( number, decimals, dec_point, thousands_sep ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +     bugfix by: Michael White (http://crestidg.com)
    // +     bugfix by: Benjamin Lupton
    // +     bugfix by: Allan Jensen (http://www.winternet.no)
    // +    revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)    
    // *     example 1: number_format(1234.5678, 2, '.', '');
    // *     returns 1: 1234.57     
 
    var n = number, c = isNaN(decimals = Math.abs(decimals)) ? 2 : decimals;
    var d = dec_point == undefined ? "." : dec_point;
    var t = thousands_sep == undefined ? "," : thousands_sep, s = n < 0 ? "-" : "";
    var i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0;
    
    return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
}
function menuover(obj)
{
	if (document.getElementById(obj + '_m').style.display == 'block')
	{
		document.getElementById(obj).className = '';
		document.getElementById(obj + '_m').style.display = 'none';
	}
	else
	{
		document.getElementById(obj).className = 'actv';
		document.getElementById(obj + '_m').style.display = 'block';
	}
}

function menuout(obj)
{
	document.getElementById(obj).className = '';
	document.getElementById(obj + '_m').style.display = 'none';
}

function $$(id){
	return document.getElementById(id);	
}

function brandspopup(obj, mode)
{
	if(mode && $$(obj).style.display == 'none')
		$('#'+obj).fadeIn('fast')
	else		
		$('#'+obj).fadeOut('fast')
}

/*****************************
**   Event listeners
******************************/

function addEvent(objElement, strEventType, ptrEventFunc) {
	if (objElement.addEventListener)
		objElement.addEventListener(strEventType, ptrEventFunc, false);
	else if (objElement.attachEvent)
		objElement.attachEvent('on' + strEventType, ptrEventFunc);
}

/*****************************
**   Common class methods
******************************/

function matchClass( objNode, strCurrClass ) {
	return ( objNode && objNode.className.length && objNode.className.match( new RegExp('(^|\\s+)(' + strCurrClass + ')($|\\s+)') ) );
}

function getElementsByClassName(objParentNode, strNodeName, strClassName){
	var nodes = objParentNode.getElementsByTagName(strNodeName);
	if(!strClassName){
		return nodes;	
	}
	var nodesWithClassName = [];
	for(var i=0; i<nodes.length; i++){
		if(matchClass( nodes[i], strClassName )){
			//nodesWithClassName.push(nodes[i]);
			nodesWithClassName[nodesWithClassName.length] = nodes[i];
		}	
	}
	return nodesWithClassName;
}

/*****************************
**   Some other methods
******************************/

function getPageY( oElement ) {
	var iPosY = oElement.offsetTop;
	while ( oElement.offsetParent != null ) {
		oElement = oElement.offsetParent;
		iPosY += oElement.offsetTop;
		if (oElement.tagName == 'BODY') break;
	}
	return iPosY;
}

function getPageX( oElement ) {
	var iPosX = oElement.offsetLeft;
	while ( oElement.offsetParent != null ) {
		oElement = oElement.offsetParent;
		iPosX += oElement.offsetLeft;
		if (oElement.tagName == 'BODY') break;
	}
	return iPosX;
}

function getMousePosition(e) {
	if (e.pageX || e.pageY){
		var posX = e.pageX;
		var posY = e.pageY;
	}else if (e.clientX || e.clientY) 	{
		var posX = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
		var posY = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
	}
	return {x:posX, y:posY}	
}

function choice(obj)
{
//alert(obj);
 for(i=1; i<=2; i++)
 {
	 if (obj == 'chc' + i)
	 document.getElementById(obj).style.border = '1px white dotted';
	 else
if (document.getElementById('chc' + i) != null)
	 document.getElementById('chc' + i).className = '';
 }
}


function checkFaqForm()
{
	var rexp_mail =/^[a-z0-9\-._]{1,}@[a-z0-9\-._]{1,}\.[a-z0-9\-._]{2,4}$/
	var txt = document.getElementById('txt').value;
	var email = document.getElementById('email').value;
	var FormIsOK = true;
	
	if(email == '' || rexp_mail.test(email) == false) {
			document.getElementById('mailDesc').style.visibility = 'visible';
			FormIsOK = false;
	}
	else
		document.getElementById('mailDesc').style.visibility = 'hidden';
		
	
	if(txt == '') {
			document.getElementById('txtDesc').style.visibility = 'visible';
			FormIsOK = false;
	}
	else
		document.getElementById('txtDesc').style.visibility = 'hidden';	
		
	if(!FormIsOK)
			alert('В форме введена информация с ошибками');
	else
	{
		document.getElementById('faqform').submit();
	}

}

function validateProductSearchForm()
{
	$('#fullsearch').submit(function(){
		try
		{
		    $('input.price', $(this)).each(function(i, input){
		        value = $(input).val();
		        if (value.length > 0 && !/^(\d+|\d+\.\d+)$/.test(value))
		        {
		            throw input;
		        }
		    });
		}
		catch (input)
		{
		    alert('В этом поле допустимы только цифры!');
		    input.focus();
			return false;
		}
	});
}

jQuery(function(){
	jQuery('input[type="radio"], input[type="checkbox"]').css('background', 'transparent');
	if ($.browser.opera) jQuery('input[type="radio"], input[type="checkbox"]').css('background', 'white');
});