var req = false;
function incQuantity(id) {
	checkQuantity(id)
	var value = document.getElementById(id).value - 0;
	value = value + 1;
	document.getElementById(id).value = value + '';
}

function decQuantity(id) {
	checkQuantity(id)
	var value = document.getElementById(id).value - 1;
	if (value >=1) document.getElementById(id).value = value + '';
}

function checkQuantity(id) {
	var value = document.getElementById(id).value;
	var numericValue = value - 0;
	numericValue = numericValue + '';
	if ((value != numericValue) || (numericValue < 1)) document.getElementById(id).value = '1';
	return false;
}

function sendForm(divNo){
var url = '/shopping-card/add';    
	var form = document.getElementById('form_' + divNo);
	var first = true;
	var dataString = '';
	var value = '';
	for (i=0; i<form.elements.length; i++){
		 if (form.elements[i].type == 'checkbox')
			value = form.elements[i].checked;
		 else
			value = form.elements[i].value;
		if (value) {
			if (!first) dataString += '&';
			else first = false;
			dataString += form.elements[i].name + '=' + value
		}
	}
	dataString += '&fld[supplier_product_id]=' + divs[divNo]['supplierProductId'];
	//alert(dataString);
	sendRequest(url, dataString, function (){requestResponse()});
	//sendRequest(url, dataString, function (){alert()});
	clearDiv ('popup_' + divNo);
	return false;
}

var req = null;
//classname

function sendRequest(url, dataString, responseFunction) {
    try 
    {
        req=new ActiveXObject('Msxml2.XMLHTTP');
    } 
    catch (e) 
    {
    	try 
    	{
            req=new ActiveXObject('Microsoft.XMLHTTP');
        } 
        catch (e) 
        {
            if(window.XMLHttpRequest)
            {
               req=new XMLHttpRequest();
            }
        }
    }
	if (req)
	{
		req.open("POST", url, true);
		req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;');
		req.setRequestHeader("Accept-Language", "ru, en");
		req.setRequestHeader("Accept-Charset", "cp1251");
		if(req.overrideMimeType)
		{
			req.setRequestHeader('Connection', 'close');
		}
		req.onreadystatechange = responseFunction;		
		req.send(dataString);		
	}
}


function requestResponse(id, vote) 
{
	if (req.readyState == 4)
	{
		if (req.status == 200) 
		{
			response = req.responseText;
			if ((response) && (response=='scss')){
				var message = 'Access granted. Vote success.';
				document.getElementById('rating_' + id).innerHTML = parseInt(document.getElementById('rating_' + id).innerHTML) + vote;
				document.getElementById('voting_' + id).style.display = 'none';
				document.getElementById('voting_success_' + id).style.display = '';
				
				
			}
			else {
				var message ='deny ;)';				
			}
		}
		else {
			var message = 'There was a problem retrieving the XML data: ' + req.statusText;
		}
	}
}
/*

function hideForm (divNo) {
	var divId = 'popup_' + divNo; 	
	document.getElementById(divId).innerHTML = '';
	document.getElementById(divId).style.zIndex = 1;	
}
*/
function showForm (divNo) {
	clearAllDivs('popup_');
	var popupHtml = document.getElementById('hiddenDivForm').innerHTML;			
	var re = /sp_id/g;
	var reDivNo = /divNo/g;
	var reArt = /art/g;	
	var reTitle = /title/g;		
	popupHtml = popupHtml.replace(re, divs[divNo]['supplierProductId']);
	popupHtml = popupHtml.replace(reDivNo, divNo);
	popupHtml = popupHtml.replace(reArt, divs[divNo]['art']);
	popupHtml = popupHtml.replace(reTitle, divs[divNo]['title']);
	var divId = 'popup_' + divNo;
	document.getElementById(divId).innerHTML = popupHtml;
	document.getElementById(divId).style.zIndex = 30;		
	if (divs[divNo]['zeroAmount']) {
		document.getElementById('w_' + divs[divNo]['supplierProductId']).disabled = true;
		document.getElementById('w_' + divs[divNo]['supplierProductId']).checked = true;
	}
}

function showResult (message) {
	alert(message);
}

function changeCheckboxes (action) {
    if (action == 'check') var checked = true;
    else var checked = false;
    for (i in divs){
        document.getElementById('pos_' + i).checked = checked;
    }
}

function checkDel() {	
	var ret=false;
	for (i in divs){
		if (document.getElementById('pos_'+i).checked == true) {		
			ret = true;			
		}
	}	
	return ret;
}

function showDetailsEdit(id){

	for (i in divs){			
			document.getElementById('details_' + i).style.zIndex = 1;
			//alert('details_' + id);
		}
	divId = 'details_edit_' + id;		
	clearAllDivs('details_edit_');
	document.getElementById(divId).innerHTML = '<div>3</div>';			
	var popupHtml = document.getElementById('hiddenDivEditDetails').innerHTML;					
	var re = /p_id/g;
	var reDivNo = /divNo/g;
	var reArt = /art/g;	
	var reTitle = /title/g;			
	popupHtml = popupHtml.replace(re, id);	
	popupHtml = popupHtml.replace(reDivNo, id);
	popupHtml = popupHtml.replace(reArt, divs[id]['art']);		
	popupHtml = popupHtml.replace(reTitle, divs[id]['title']);								
	try {
	divToReplace = document.getElementById(divId).innerHTML = popupHtml;
	}
	catch (e) {
		var error_string = 'Title: ' + e.message + "\n Number: " + (e.number & 0xFFFF) + "\n Description:" + e.description;
		//alert( error_string);
	}		
	document.getElementById(divId).style.zIndex = 30;		
	document.getElementById('details_' + id).style.zIndex = 30;		
	document.getElementById('q_' + id).checked = divs[id]['q'];			
	document.getElementById('w_' + id).checked = divs[id]['w'];
	if (divs[id]['w'] && divs[id]['zeroAmount']) { 
		document.getElementById('w_' + id).disabled = true;
	}
	document.getElementById('b_' + id).checked = divs[id]['b'];
	document.getElementById('p_' + id).checked = divs[id]['p'];	
	document.getElementById('c_' + id).value = divs[id]['c'];	
}

function clearDiv (divId) {
//	var divId = 'details_edit_' + id; 	
	document.getElementById(divId).innerHTML = '';
	document.getElementById(divId).style.zIndex = 1;
	//alert(document.getElementById('details_' + id));
	//if (document.getElementById('details_' + id)) {
	//	
	//}
}
function clearAllDivs(prefix) {
if ((divs)){	
		for (i in divs){			
			clearDiv(prefix+i);
		}
	}
}

function updateDetails (id, cart_id) {			
	var divId = 'details_edit_' + id;
	var url = '/shopping-card/update';    		
	var value = '';
	var dataChanged = false;
	var dataString = '';		
	value = document.getElementById('q_' + id).checked;	
	if (divs[id]['q'] != value) {
		divs[id]['q'] = document.getElementById('q_' + id).checked;		
		dataChanged = true;		
		dataString += 'fld[q]=' + value;
	}
	value = document.getElementById('w_' + id).checked;
	if (divs[id]['w'] != value) {
		divs[id]['w'] = value;				
		dataChanged = true;
		if (dataString != '') dataString += '&';			
		dataString += 'fld[w]=' + value;
	}
	value = document.getElementById('b_' + id).checked
	if (divs[id]['b'] != value) {
		divs[id]['b'] = document.getElementById('b_' + id).checked;		
		dataChanged = true;
		if (dataString != '') dataString += '&';			
		dataString += 'fld[b]=' + value;
	}
	value = document.getElementById('p_' + id).checked
	if (divs[id]['p'] != value) {
		divs[id]['p'] = document.getElementById('p_' + id).checked;		
		dataChanged = true;
		if (dataString != '') dataString += '&';			
		dataString += 'fld[p]=' + value;
	}
	value = document.getElementById('c_' + id).value
	if (divs[id]['c'] != value) {
		divs[id]['c'] = document.getElementById('c_' + id).value;		
		dataChanged = true;
		if (dataString != '') dataString += '&';			
		dataString += 'fld[c]=' + value;
	}				
	if (dataChanged) {
		dataString += '&fld[position_id]=' + id;
		if (typeof(cart_id)!='undefined') {			
			dataString += '&fld[cart_id]=' + cart_id;
		}
		sendRequest(url, dataString, function (){updateChangedClasses(id)});
	}
	clearDiv('details_edit_' + id);
	return false;
}

function updateChangedClasses (id) {
	if (req.readyState == 4) {
		if (req.status == 200) {
			response = req.responseText;
			if ((response) && (response=='OK')){				
				//var message = 'Позиция была успешно изменен';								
				document.getElementById('flag_q_' + id).className = 'details_flag_' + (divs[id]['q'] & 1);		
				document.getElementById('flag_w_' + id).className = 'details_flag_' + (divs[id]['w'] & 1);
				document.getElementById('flag_b_' + id).className = 'details_flag_' + (divs[id]['b'] & 1);
				document.getElementById('flag_p_' + id).className = 'details_flag_' + (divs[id]['p'] & 1);	
				// Попробуем найти строку в таблице, и в случае успеха изменить ее стиль в соответствии с возможностью ее добавления
				if (row = document.getElementById('tr_' + id)) {											
					if ((divs[id]['q'] && (!divs[id]['w']) && divs[id]['overhead']) || ((!divs[id]['w']) && divs[id]['zeroAmount'])) {
						row.style.background = '#FFE9E9';
					//	divs[id]['addable'] = false;
					}					
					else{
					//	divs[id]['addable'] = true;
						row.style.background = '#FFF';
					}
				}				
				var ecapedString = divs[id]['c'].substr(0,20);
				ecapedString = ecapedString.replace('<', '&lt;');
				ecapedString = ecapedString.replace('>', '&gt;');
				document.getElementById('flag_c_' + id).innerHTML = ecapedString;
			}
			else {
				//alert(id);
				document.getElementById('debug_div').innerHTML = response;				
				alert ('Ошибка изменения позиции, попробуйте повторить попытку позже.');
			}
		}
		else {
			alert ('There was a problem retrieving the XML data: ' + req.statusText);
		}		
	}	
}

function updateQuantity(cart_id) {	
	var url = '/shopping-card/update';    		
	clearAllDivs('details_edit_');
	var form = document.getElementById('shoppingCartForm');
	var first = true;
	var dataString = '';
	var value = '';	
	for (i in divs){			
		value = document.getElementById('qtty_' + i).value;
		if ((value - 0) != divs[i]['qtty']) {
			if (!first) dataString += '&';
			else first = false;
			dataString += 'fld[' + i + '][quantity]=' + value;
		}
	}			
	if (!first) {				
		if (typeof(cart_id)!='undefined') {			
			dataString += '&fld[cart_id]=' + cart_id;
		}
		sendRequest(url, dataString, function (){refreshPageOnReadyState()});		
	}
}

function refreshPageOnReadyState () {
	if (req.readyState == 4) {
		if (req.status == 200) {
			response = req.responseText;
			if ((response) && (response=='OK')){												
			location.reload();
			}			
			else {				
				document.getElementById('debug_div').innerHTML = response;				
				alert ('Ошибка изменения позиции, попробуйте повторить попытку позже.');
			}
		}
		else {
			alert ('There was a problem retrieving the XML data: ' + req.statusText);
		}		
	}
}
function changeCheckbox(id) {
            document.getElementById(id).checked = !(document.getElementById(id).checked);
        }
		
function changeCurrency(newValue, oldValue, formId) {
    if (newValue != oldValue)
    document.getElementById(formId).submit();
}

