/*
	class_mobile_abos.js
	----------------------
	GRiDDS - GmbH
	gridds.ch
	jei.at.girdds.com
	----------------------
*/
/**********************************************************************************
Class mobileABO
	
**********************************************************************************/

function mobileABO()	{
	this.name = 'mobile_abo';
	this.Ename = this.name+'-child_'+this.child;
	this.abos = '';
	this.prod = '';
	this.divname = '';
	this.prices = '';
	this.update = '';
	
	this.addFirst = addFirst;
	this.addChild = addChild;
	this.killThis = killThis;
	this.SelectorElement = SelectorElement;
	this.checkV_number = checkV_number;
	this.checkV_number_m = checkV_number_m;
	this.checkV_empty = checkV_empty;
	this.checkMNr = checkMNr;
	this.updateIt = updateIt;
	//this.check_qty = check_qty;
	//this.setMNr = setMNr;
	this.createPrice = createPrice;
	this.child = 0;	
}

function updateIt()	{
	var first = false, qty, selected, mNr;
	for (var abo=0; abo <=  8; abo++)	{
		if(this.update[abo])	{
			qty = this.update[abo]['qty'];
			selected = abo;
			mNr = this.update[abo]['mobiles'];
			if(first)	{
				this.addChild(true, qty, selected, mNr);
				first=true;
			} else	{
				this.addChild(false, qty, selected, mNr);
			}
		}
	}
	
}

function addChild(first, qty, selected, Mobiles)	{
	if(first!=true) first=false;
	this.child = this.child + 1;
	var neu = this.SelectorElement(first, qty, selected, Mobiles);
	document.getElementById(this.divname).appendChild(neu);
}

function addFirst()	{
	var neu = this.SelectorElement(true, 1, 0, false);
	document.getElementById(''+this.divname).appendChild(neu);
	//alert(document.getElementById(this.divname));
}

function createPrice(nr)	{
	var value;
	if(nr==0)	{
		//value = Math.round(this.prod[0]['products_price']*1076)/1000;
		value = Math.round(this.prod[0]['products_price']*10)/10;
	}	else	{
		//value = Math.round(this.prices[nr]*1076)/1000;
		value = Math.round(this.prices[nr]*10)/10;
	}
	if(value==Math.round(value))	value +='.-';
	//return 'CHF '+ Math.round(value*20)/20;
	return 'Netto: CHF '+ value;
}

function SelectorElement(first, qty, selected, Mobiles)	{
	
	if(first!=true) first=false;
	
	this.Ename = this.name+'-child_'+this.child;
	
	var div = new myDiv('A', this.Ename, this.name+'-Selector');
    
    if(!qty) var qty = 1;
    //alert(new Function( "checkV_empty(this); checkMNr( this, '"+this.Ename+"'); " ));
    var input = new myInput( 'quantity','input' , this.Ename+'-input', '2', qty, new Function( "checkV_empty(this); checkMNr( this, '"+this.Ename+"'); " ), this.checkV_number);
	//myInput(element, type, name, size, value, onblur, onkeydown, onclick, onkeyup)
	input.newInput( 'kill','button' ,'', '1', 'löschen', '', '', this.killThis)
	input.kill.className = 'mAbo_button';
	
	//new Image Delete
	var imageDelete = new Image();
	imageDelete.src = 'images/tubedesign/trash.gif';
	imageDelete.onclick = this.killThis;
	imageDelete.onmouseover = new Function("showText('Element löschen');");
	imageDelete.onmouseout = new Function("setTime('');");
	imageDelete.className = 'delete_element';
	
	var select = document.createElement("select");
	var option;
	select.name = this.Ename+'-select';
	select.onchange = new Function( "checkMNr( this, '"+this.Ename+"')" );
	select.className = 'normal';
	
	function optionElement( text, value)	{
		var element = document.createElement("option");
		element.setAttribute("value", value);
		element.text= text;
		return element
	}	
	for(nr=0; nr<this.abos.length; nr++){ 
		if(this.prices[nr]|nr==0) { 
			//alert(nr);
			option = optionElement(this.abos[nr]+" ( "+ this.createPrice(nr) +" )", nr);
			if(selected==nr) option.selected = true;
			select.appendChild(option);
		}
	}
	for(nr=0, nrS=0; nr<this.abos.length; nr++){ 
		if(this.prices[nr]|nr==0) { 
			//alert('length: '+select.length+' - hallo Welt - '+nr);
			select[nrS].text = this.abos[nr]+" ( "+ this.createPrice(nr) +" )";
			nrS++;
		}
	}
	
	//select.onmouseover = new function ()	{ this.className+"='over';"};
	//select.onmouseout = new function ()	{ this.className+"='normal';"};
	
	div.A.appendChild(input.quantity);
	div.A.appendChild(select); 
	if(first) {input.kill.style.visibility = 'hidden'; imageDelete.style.visibility = 'hidden';}
	//div.A.appendChild(input.kill);
	div.A.appendChild(imageDelete);
	if(Mobiles)	{
		this.checkMNr(div.A.firstChild, this.Ename, Mobiles);
	}
	return div.A;
}

/**********************************************************************************
Event-Functions killThis, checkV_number, checkV_empty, checkMNr
	
**********************************************************************************/

function killThis(obj)	{
	var count=0;
	var Countnode = this.parentNode;
	while(Countnode.previousSibling!=null){count++;Countnode = Countnode.previousSibling;}
	var div = this.parentNode.parentNode.childNodes[count];
	this.parentNode.parentNode.removeChild(div);
}

function checkV_number_m(obj)	{
	var PDIV = this.parentNode;
	var data = new myData('CodeRed', '	Bitte geben sie die Mobile Nummern an.', 'red');
	if(this.value.length==10)	{ 
	if(this.nextSibling!=null)PDIV.removeChild(this.nextSibling); }	
	else	{ if(this.nextSibling==null)	{ PDIV.appendChild(data.CodeRed); } }
}

function checkV_number(obj)	{
	var browser=navigator.appName;
	var b_version=navigator.appVersion;
	var version=parseFloat(b_version);
if ((browser!="Microsoft Internet Explorer"))
{
	if(((obj.keyCode<=57)&(obj.keyCode>=48))|((obj.keyCode<=105)&(obj.keyCode>=96))|obj.keyCode==8|obj.keyCode==37|obj.keyCode==39){
		return true;
	}
	if(obj.keyCode==13)	{
		return false;
	}
}
}

function checkV_empty(obj)	{
	if(obj.value==""|obj.value=="0"){ obj.value='1'; return true; }
}

function checkMNr(obj, name, Mobiles)	{
	var DIV = obj.parentNode;
	var FirstChild = obj.parentNode.firstChild;
	var Quantity = FirstChild.value;
	var Select = FirstChild.nextSibling;
	var value;
	name = DIV.id;
	if(Select.value==1|Select.value==2)	{ 
		var input = new myInput();
		var div = new myDiv('spezial', '', 'MobileAboNumbers'); 
		var data = new myData(); 
		if(Select.nextSibling.nextSibling==null){ 
				for(var nr2=1, nr=0;nr<Quantity;nr++, nr2++)	{
					if(Mobiles)	{ value = Mobiles[nr]; } else	{ value = ''; }
					input.newInput(nr,'input' , name+'-mNr_'+nr, '10', value, '', this.checkV_number, '', this.checkV_number_m);
					data.newData('d_'+nr, 'Mobile Nr'+nr2+': ', '#006699');
					data.newData('specd_'+nr, '	Bitte geben sie die Mobile Nummern an.', 'red');
					div.newDiv('d_'+nr, '', '');
					div['d_'+nr].appendChild(data['d_'+nr]);
					div['d_'+nr].appendChild(input[nr]);
					if(!Mobiles) div['d_'+nr].appendChild(data['specd_'+nr]);
					div.spezial.appendChild(div['d_'+nr]);
				}
				Select.parentNode.appendChild(div.spezial);
		} else	{
			var MobileNumbers = Select.nextSibling.nextSibling;
			var count = MobileNumbers.childNodes.length;
			if(Quantity>count)	{
				for (var N=Quantity-count; N!=0; N--,count++)	{
					input.newInput(count,'input' , name+'-mNr_'+count, '10', '', '', this.checkV_number, '', this.checkV_number_m);
					data.newData('d_'+count, 'Mobile Nr'+(count+1)+': ', '#006699');
					data.newData('specd_'+count, '	Bitte geben sie die Mobile Nummern an.', 'red');
					div.newDiv('d_'+count, '', '');
					div['d_'+count].appendChild(data['d_'+count]);
					div['d_'+count].appendChild(input[count]);
					div['d_'+count].appendChild(data['specd_'+count]);
					MobileNumbers.appendChild(div['d_'+count]);	
				}
			} 
			if(Quantity<count)	{
				var valueNr, areNumbers=false;
				var dontAsk=true;
				for (var N=count-Quantity, id=count-1; N!=0; N--, id--)	{
					valueNr = MobileNumbers.childNodes[id].childNodes[1].value;
					if(valueNr != '')	{
					   areNumbers = true;
					}
				}
				if(areNumbers) dontAsk = confirm('Möchten sie die Mobile Nummern verwerfen (ja), oder möchten sie nochmals danach gefragt werden (nein)?') 
				for (var N=count-Quantity, id=count-1; N!=0; N--, id--)	{
					valueNr = MobileNumbers.childNodes[id].childNodes[1].value;
					if(valueNr != '')	{
						if(dontAsk)	{
							MobileNumbers.removeChild(MobileNumbers.childNodes[id]);
						} else	{
							if(confirm('Die Nummer: [' + valueNr + '] verwerfen?'))	{
								MobileNumbers.removeChild(MobileNumbers.childNodes[id]);
							}
						}
					} else	{
						MobileNumbers.removeChild(MobileNumbers.childNodes[id]);
					}
				}
				FirstChild.value = MobileNumbers.childNodes.length;
			}
		}
	}	else	{
		if(Select.nextSibling.nextSibling!=null)	DIV.removeChild(Select.nextSibling.nextSibling);
	}
}

function check_submit()	{
	var MNR_ARR = new Array(), MNR, SDIV, MobileAbos = document.getElementById('mobile_abos');
	//alert('controllfunction!! standard true');
	if(MobileAbos.childNodes.length==0)	{
		xy.addChild(false);
		//return false;
	}
	
	for (var nr = MobileAbos.childNodes.length, count = 0 ; count < nr ; count++ )	{
		if(MobileAbos.childNodes[count].childNodes[3]){ 
			SDIV = MobileAbos.childNodes[count].childNodes[3];
			var qty = MobileAbos.childNodes[count].childNodes[0].value;
			var qty = MobileAbos.childNodes[count].childNodes[0].value;
			if(SDIV.childNodes.length != qty)	{
			  checkMNr(MobileAbos.childNodes[count].childNodes[0], '', '');
			  //alert(SDIV.childNodes.length +' != '+ qty);
			  return false;
			}
			for(var nr2 = SDIV.childNodes.length, count2 = 0; count2 < nr2; count2++ )	{
				MNR = SDIV.childNodes[count2].childNodes[1].value;
				if(MNR.length!=10||MNR.match(/\D+/))	{
					alert('Bitte geben Sie alle Mobile Nummern korrekt an!');
					return false;
				} else	{
					MNR_ARR.push(MNR);
				}
			}
		}
	}
	var QTY = MNR_ARR.length;
	for(var count = 0; count < QTY; count++)	{
		for(var count2 = 0; count2 < QTY; count2++)	{
			if((MNR_ARR[count]==MNR_ARR[count2])&&(count!=count2))	{
				alert('Die Mobile Nummer ('+MNR_ARR[count]+') ist doppelt!');
				return false;
			}
		}
	}
	return true;
}

/**********************************************************************************
Class myInput, myDiv
	
**********************************************************************************/

function myInput(element, type, name, size, value, onblur, onkeydown, onclick, onkeyup)	{
	if(element || element==0)	{
	
		this[element] = document.createElement("input");
		//this[element].type = type;
		this[element].name = name;
		this[element].size = size;
		this[element].value = value;
		this[element].onblur = onblur;
		this[element].onkeydown = onkeydown;
		
		if(onclick)this[element].onclick = onclick;
		if(onkeyup)this[element].onkeyup = onkeyup;
		this[element].className = 'normal';
		//this[element].onmouseover = new function ()	{ 'this.className="over";' };
		//this[element].onmouseout = new function ()	{ 'this.className="normal";'};
	}
	this.newInput = myInput;
}

function myDiv(element, id, className)	{
	this[element] = document.createElement("div");
	this[element].id = id;
	this[element].className = className;
	this.newDiv = myDiv;
}

function myData(element, Text, color)	{
	this[element] = document.createElement("span");
	if(color)this[element].style.color = color;
	var addText = document.createTextNode(Text);
    this[element].appendChild(addText);
    
    //var addColor = document.createAttribute("color");
    //addColor.nodeValue = "color";
    //this[element].setAttributeNode(addColor);

    this.newData = myData;
}
