/*var ascii_ru = [];
ascii_ru[0] = ['а','б','в','г','д','е','ё','ж','з','и','й','к','л','м','н','о','п','р','с','т','у','ф','х','ц','ш','щ','э','ю','я','A','Б','В','Г','Д','Е','Ё','Ж','З','И','Й','К','Л','М','Н','О','П','Р','С','Т','У','Ф','Х','Ц','Ш','Щ','Э','Ю','Я','ь','ы','ъ','Ь','Ы','Ъ','ч', 'Ч'];
ascii_ru[1] = ['61','E1','E2','E3','E4','E5','B8','E6','E7','E8','E9','EA','EB','EC','ED','EE','EF','F0','F1','F2','F3','F4','F5','F6','F8','F9','FD','FE','FF','41','C1','C2','C3','C4','C5','A8','C6','C7','C8','C9','CA','CB','CC','CD','CE','CF','D0','D1','D2','D3','D4','D5','D6','D8','D9','DD','DE','DF','FC','FB','FA','DC','DB','DA','F7','D7'];

// gen object with keys like 'г' and values like 'E3'
function genAsciiObject(asciiArr){
	var obj = {};
	
	if (asciiArr.length!=2
		|| asciiArr[0].length!=asciiArr[1].length){
		
		return null;
	}
	for(var i=0; i<ascii_ru[0].length; i++) {
		obj[(ascii_ru[0][i])]=(ascii_ru[1][i]);
	}
	return obj;
}
*/
// returns URL mean escaped string
// with Russian characters treated by the ascii_tu array

function encodeURI_ASCII(str){
	if (typeof str != "string")
		return null;
	var res="";
	for (var i=0;i<str.length;++i){
	
		// if the char is Russian
		if (ascii_ru[str.charAt(i)]){
			
			res += '%'+ascii_ru[str.charAt(i)];
		}
		else{
			
			res += encodeURIComponent(str.charAt(i));
		}
	}
	return res;
}


function sendTableData(table){
	
	if (typeof table=="string"){table=document.getElementById(table)};
	if (!table) {return;}
	
	var available = 'есть';//encodeURI_ASCII('есть');
	var unavailable = 'нет';//encodeURI_ASCII();
	
	var report="";		
	
	// go through the table cells
	for(var i=0; i<table.rows.length; i++) {
		for(var j=0; j<table.rows[i].cells.length; j++) {
			var c;				
			if (c = getElement(table.rows[i].cells[j],"INPUT")){		// INPUT?
				var attr = c.getAttribute('type');
				if (!attr)attr='';
				switch (attr) {
					case '':
					case 'text':
						report+='-'+c.value;//encodeURI_ASCII('-'+c.value);
						break;
					case 'radio':
						var radios = c.parentNode.getElementsByTagName('INPUT');
						for(var r=0; r<radios.length; r++) {
							if (radios[r].checked){
								for(var rc=radios[r].nextSibling; rc; rc=rc.nextSibling) {
									if (rc.nodeType==/*Node.TEXT_NODE*/3){
										report+='-'+rc.data.replace(/\n/g, ' ');//encodeURI_ASCII('-'+rc.data.replace(/\n/g, ' '));
										break;
									}
								}
								break;
							}
						}  
					break;
					case 'checkbox':
						var cbxs = c.parentNode.getElementsByTagName('INPUT');
						for (var i=0;i<cbxs.length;++i){
							if (cbxs[i].getAttribute('type')=='checkbox'){
								//document.write(cbxs[i].checked+'-');
								
								for (var c = cbxs[i].nextSibling;c;c = c.nextSibling){
									if (c.nodeType==/*Node.TEXT_NODE*/3){
										//document.write(c.data+"<br/>");						
										report+=c.data.replace(/\n/g, ' ')+":";//encodeURI_ASCII(c.data.replace(/\n/g, ' ')+":");
										break;
									}
								}
								report+= cbxs[i].checked?available:unavailable+"%3B";
							}
						}
						break;
				}
			}
			else if (c = getElement(table.rows[i].cells[j],"TEXTAREA")){		//TEXTAREA ?
					
					report+='-'+c.value.replace(/\n/g,' ');//encodeURI_ASCII('-'+c.value.replace(/\n/g,' '));		
			}
			else if (c = getElement(table.rows[i].cells[j],"SELECT")){			//SELECT ?
				report+='-'+c.options[c.selectedIndex].text;//encodeURI_ASCII('-'+c.options[c.selectedIndex].text);
			}
			else{											
				// some kind of HTML formatted text
				// extract the 1st text node from the cell
				if (c = getTextNode(table.rows[i].cells[j]))
					report+='-'+c.data.replace(/\n/g,' ')//encodeURI_ASCII('-'+c.data.replace(/\n/g,' '));
			}
			//report+='%0A';
		}
		report+='\n';//'%0A';
	}
	
	//window.location = "mailto:client@carre-noir.ru?body="+report; 
	document.getElementById('report').innerHTML=report;
}

function getTextNode(root){ 
	if (root && root.nodeType == /*Node.TEXT_NODE*/3){	
		return root;
	}
	else if (root.nodeName == "IMG" || root.nodeName == "BR")
		root = root.nextSibling;
	
	for (var i=0,e; i < root.childNodes.length; ++i){
		e = getTextNode (root.childNodes[i]);
		if (e) return e;
	}
	return null;
	
	
}

// get element node by it's tagname
function getElement(root, eName){
	getElement.eName = eName;
		function getRecursive (root){
			if (root && root.nodeName == eName){
				return root;
			}
			for (var i=0, e; i < root.childNodes.length; ++i){
				e = getRecursive (root.childNodes[i], eName);
				if (e) return e;
			}
			return null;
		}
	return getRecursive (root);
}


// init on the script loading in the browser			------>
//
//ascii_ru = genAsciiObject(ascii_ru);
function formatCalc(table){
	if (table){
		for(var i=0;i<table.rows.length;++i){
			table.rows[i].style.background=(i%2==0?'#E0E0E0':'#F4F4F4');
		}
	}
}
