/*--------------------------------------------------------------*/
// HTML TABLE SORTER - OBJECT ORIENTED JAVASCRIPT IMPLEMENTATION OF QUICKSORT
// @author	Terrill Dent 
// @source	http://www.terrill.ca
// @date	August 28th, 2006
// адаптировал под интернет магазин 
// @date	декабрь 2009
// @author	Нужков Юрий
// @source	http://Rodnoe.info
/*--------------------------------------------------------------*/

var strOrder = new String;
var strOrderF = new String;
var strEMail = new String;
var strSubj = new String;
strOrder="";
strEMail="eee@eee.eee";
strSubj="Заказ";

function TSortSum(){
	var name = -1;
	var quant = -1;
	var price= -1;
	var oT = Object;
	var table = Object;
	var order = Object;
	var ordername =new String;
	var tablename =new String;
//	var email =new String;
	var trs = Array;
	var ths = Array;
	var curSortCol = Object;
	var prevSortCol = '3';
	var sortType = Object;
	var N = '6';
	var P = '7';
	var tmpCol = '6';

	function get(){}

	function getCell(row,col){
		return trs[row].cells[col];
	}
	this.initMag = function(n,p,q,oname,em){//указываем из какого столбца ( 0,5,8,"formname","email") брать название, цену, кол-во, на какой емаил отправлять
	name = n;
	price = p;
	quant = q;
	//formname = fn;
	ordername=oname;
	strEMail=em;
	//alert(ordername);
	}
	
	this.init = function(tName,pre)
	{
		prevSortCol=pre;
		//alert(tableName);
		tableName=tName;
		table = document.getElementById(tableName);
		if(!table) 
		{
			//alert(tableName +"=false"); 
			return false;
		}
		//window.status=Math.random();

		ths = table.getElementsByTagName("th");
		for(var i = 0; i < ths.length ; i++)
		{
			ths[i].onclick = function()
			{
				sort(this);
			}	
		}

/*		table.onmousemove=function()
		{
				Sum(this);
		}
*/
		trs = table.tBodies[0].getElementsByTagName("tr");
		//Alert(trs.length);
/*		for(var j=0; j<trs.length; j++)
		{
		
				trs[j].onmousemove = function()
				{
					Sum();
				}				
		}
*/
		window.setInterval('Tik()', 2000);

		return true;
	};
	
	function roundPlus(x, n) { //x - число, n - количество знаков 
  		if(isNaN(x) || isNaN(n)) return false;
  		var m = Math.pow(10,n);
  		return Math.round(x*m)/m;
	};



	this.Sum=function Sum(){
		if(name<0 || quant<0 || price <0) return;
		order = document.getElementsByName(ordername);
		if(!order) 
		{
			//alert(formname+"=false sum");
			return false;
		}
		
		//alert(order[0].value);
		//alert(order[0].type);
	//prompt("",1);zz
	
			strOrder="";
			strOrderF="";
		
		var u=0;
		var p;
		var q;
		var c;
		var n;
		var s=new String();
		
		trs = table.tBodies[0].getElementsByTagName("tr");
		//alert(trs);
		for(var j=0; j<trs.length; j++)
		{
			setGet(name);//тип и номер колонки установили
			n=get(j);
			setGet(price);//тип и номер колонки установили
			s=get(j);
			p=parseFloat(s,10);
			if(isNaN(p)) {/*alert("a continue");*/ continue;}
			p=p*100;
			
			setGet(quant);//тип и номер колонки установили
			q=parseInt(get(j),10);	
			if(isNaN(q)) {/*alert("b contunue"); */continue;}

			p=Math.abs(p);
			q=Math.abs(q);
			p=roundPlus(p,2);
			q=roundPlus(q,2);
			c=p*q;
			//c=roundPlus(c,2);
			if(c==0) continue;
			u=u+c;
			//order.value=order.value + n + "  "+ p/100 + " * " + q + " = " + c/100 + "\r\n";
			strOrderF=strOrderF + n + "  "+ p/100 + " * " + q + " = " + c/100 + " руб.\r\n";
			strOrder=strOrder + n + "  "+ p/100 + " * " + q + " = " + c/100 + " руб.%0A";
		}
		strOrderF=strOrderF+ "Итого: " +u/100 + " руб.\r\n";
		strOrder=strOrder+ "Итого: " +u/100 + " руб.%0A";
			
		order[0].title="Проверте Ваш заказ и отпрпвте заявку";
		order[0].value=strOrderF;
		};

	function sort(oTH)
	{
		curSortCol = oTH.cellIndex;
		sortType = oTH.abbr;
		trs = table.tBodies[0].getElementsByTagName("tr");
		setGet(curSortCol)

		for(var j=0; j<trs.length; j++)
		{
			if(trs[j].className == 'detail_row')
			{
				closeDetails(j+2);
			}
		}

		if(prevSortCol == curSortCol)
		{
			oTH.className = (oTH.className != 'ascend' ? 'ascend' : 'descend' );
			reverseTable();
		}
		else
		{
			oTH.className = 'ascend';
			if(ths[prevSortCol].className != 'exc_cell'){ths[prevSortCol].className = '';}
			quicksort(0, trs.length);
		}
		prevSortCol = curSortCol;
	}
	
	function setGet(col)
	{
		sortType=ths[col].abbr;
		switch(sortType)
		{   
			case "image_number":
				get = function(index){	
					return parseFloat((index,col).childNodes[1].nodeValue);
				}
				break;
			case "image_text":
				get = function(index){	
					return getCell(index,col).childNodes[1].nodeValue;
				}
				break;
			case "link":
				get = function(index){
					return  getCell(index,col).firstChild.firstChild.nodeValue;
				};
				break;
			case "input_text":
				get = function(index){
					return getCell(index,col).firstChild.value;
				};
				break;
			case "number":
				get = function(index){	
					return parseInt(getCell(index,col).firstChild.nodeValue, 10);
				}
				break;
			default:
				get = function(index){	
				return getCell(index,col).firstChild.nodeValue;};
				break;
		};	
	}

	function exchange(i, j)
	{
		if(i == j+1) {
			table.tBodies[0].insertBefore(trs[i], trs[j]);
		} else if(j == i+1) {
			table.tBodies[0].insertBefore(trs[j], trs[i]);
		} else {
			var tmpNode = table.tBodies[0].replaceChild(trs[i], trs[j]);
			if(typeof(trs[i]) == "undefined") {
				table.appendChild(tmpNode);
			} else {
				table.tBodies[0].insertBefore(tmpNode, trs[i]);
			}
		}
	}
	
	function reverseTable()
	{
		for(var i = 1; i<trs.length; i++)
		{
			table.tBodies[0].insertBefore(trs[i], trs[0]);
		}
	}

	function quicksort(lo, hi)
	{
	//alert(get(lo+1));//+1);
	//alert(get(hi-1));
		if(hi <= lo+1) return;
		 
		if((hi - lo) == 2) {
			if(get(hi-1) > get(lo)) exchange(hi-1, lo);
			return;
		}
		
		var i = lo + 1;
		var j = hi - 1;
		
		if(get(lo) > get(i)) exchange(i, lo);
		if(get(j) > get(lo)) exchange(lo, j);
		if(get(lo) > get(i)) exchange(i, lo);
	
		var pivot = get(lo);
		
		while(true) {
			j--;
			while(pivot > get(j)) j--;
			i++;
			while(get(i) > pivot) i++;
			if(j <= i) break;
			exchange(i, j);
		}
		exchange(lo, j);
		
		if((j-lo) < (hi-j)) {
			quicksort(lo, j);
			quicksort(j+1, hi);
		} else {
			quicksort(j+1, hi);
			quicksort(lo, j);
		}
	}

}

//end TSortSum	
	
	function SendOrder(){
	var num;
	num = Math.round( Math.random()*98+1);
	var s;
	s="Заказ от ";

   	var dDate = new Date();
	var dMonth = dDate.getMonth()+1;
	var dDayOfMonth = dDate.getDate();
	var dYear = dDate.getFullYear();
	var dHours = dDate.getHours();
	var dMinutes = dDate.getMinutes();
	var dSeconds = dDate.getSeconds();


	s= s + dYear + "." + dMonth + "." + dDayOfMonth + " " + dHours + ":" + dMinutes + " N " + num;
	strSubj =s;
//	if(isOpera)
//		alert ("Opera");
	location.href = "mailto:"+strEMail+"?subject="+strSubj + "&body="+strOrder+"&CC"+strEMail;
	}
	
	
	var TableSorter1 = new TSortSum;
	var TableSorterVideo = new TSortSum;
	var TableSorterMagSiz = new TSortSum;
	var TableSorterNews= new TSortSum;
	var TableSorterTvor= new TSortSum;
	var TableSorterGazeta= new TSortSum;

	function init()
	{
		//var TableSorter2 = new TSorter;
		
		TableSorter1.initMag(5,7,1,"Order","aaa@aaa.aaa");//название цена кол-во
		//TableSorterVideo.initX(5,7,1,"Order");//название цена кол-во
		TableSorterMagSiz.initMag(2,4,5,"Order0","sunspot@land.ru");//название цена кол-во
		
		TableSorter1.init('housing_table_1',3);
		TableSorterVideo.init('table_video',3);
		TableSorterMagSiz.init('tableMagSiz',1)
		TableSorterNews.init('table_news',1)
		TableSorterTvor.init('table_tvor',5)
		TableSorterGazeta.init('table_gazeta',0)
		
	}
	
	function Tik()
	{		
//	TableSorter1.Sum();
		//TableSorterVideo.Sum();
		TableSorterMagSiz.Sum()
//		window.setTimeout('Tik()',1000);

       //window.status=Math.random();
       var v = Object;
		v = document.getElementById('nnnn');
		//nnnn.innerHTML='<a href="aaa.html">Отправить заказ</a>';
		//nnnn.id
		//window.status=Math.random();
		//alert(v.id);
		
		var num;
		num = Math.round( Math.random()*98+1);
	s="Заказ от ";

   	var dDate = new Date();
	var dMonth = dDate.getMonth()+1;
	var dDayOfMonth = dDate.getDate();
	var dYear = dDate.getFullYear();
	var dHours = dDate.getHours();
	var dMinutes = dDate.getMinutes();
	var dSeconds = dDate.getSeconds();


	s= s + dYear + "." + dMonth + "." + dDayOfMonth + " " + dHours + ":" + dMinutes + " N " + num;
//	strSubj =s;
	
//		window.status=s;//Math.random();
		
		
		
//		nnnn.innerHTML="<a href="+ "mailto:"+strEMail+"?subject=" +strSubj  + " N " + num + "&body="+strOrder+"&CC"+strEMail   +'>Отправить заказ</a>';
		//alert(nnnn.innerHTML);

	}
	
	
	window.onload = init;
	//window.setInterval('Tik()', 2000);
//	document.write("JavaScript !");






