/*
 * formbak.js
 * 
 *  form kontrol islevleri kutuphanesi
 */
var denetimler=[
	{alan:'u_user', tip: 'text', zid: 'z', oruntu: "^"+"[a-z0-9]{3,8}"+"$", uyari:"Lütfen Kullanıcı adınızı kontrol ediniz.\nKullanıcı adında türkçe ve büyük karakter kullanılamaz."},
	{alan:'u_sifre', tip: 'password', zid: 'z', oruntu:"^[a-zA-Z0-9.!\+%*_]{4,16}$", uyari:"Lütfen şifrenizi kontrol ediniz.\nŞifrede türkçe karakter kullanmayınız.\nŞifre min. 4 - max. 16 karakterden oluşabilir."},
	{alan:'u_sifre_tekrar', tip: 'password', zid: 'z', oruntu: "=u_sifre", uyari:"Girdiğiniz şifreler birbirini tutmamaktadır."},
	{alan:'u_mail', tip: 'text', zid: 'z', oruntu: "^"+"([a-zA-Z0-9]+[a-zA-Z0-9_\.\-]*)"+"@"+"([a-zA-Z0-9_\-]+)"+"[\.]"+"([a-zA-Z0-9_\.\-]+)"+"$", uyari:"Lütfen e-posta adresinizi kontrol ediniz."},
	{alan:'su_miktar', tip: 'text', zid: 'z', oruntu: "^"+"[01]?[0-9]"+"$", uyari:"Lütfen girdiğiniz ürün miktarını kontrol ediniz. Bir alışverişte bir üründen en çok 19 adet sipariş edebilirsiniz."}
];
var fdntm=new Array();
var tipregexp=[
	{ kod:-1,tip:'metin',oruntu:".*" },
	{ kod:-2,tip:'tarihYAG',oruntu:"^"+"[12][0-9]{3}-[01]?[0-9]-[0-3]?[0-9]"+"$" },
	{ kod:-3,tip:'liste',oruntu:"(secenek1|secenek2|secenek3)"},
	{ kod:0,tip:'tamsayi',oruntu:"^"+"[+-]?[0-9]+"+"$"},
	{ kod:1,tip:'sayi1',oruntu:"^"+"[+-]?[0-9]+([.[0-9]{0,1})?)"+"$"},
	{ kod:2,tip:'sayi2',oruntu:"^"+"[+-]?[0-9]+([.[0-9]{0,2})?"+"$"},
	{ kod:3,tip:'sayi3',oruntu:"^"+"[+-]?[0-9]+([.[0-9]{0,3})?)"+"$"},
	{ kod:4,tip:'sayi4',oruntu:"^"+"[+-]?[0-9]+([.[0-9]{0,4})?)"+"$"},
];
function veri2regexp( fs, fr) {
	var v=fs[fs.selectedIndex].value;
	for( var i=0; i<tipregexp.length; i++)
		if( tipregexp[i].kod==v) {
			fr.value=tipregexp[i].oruntu;
			break;
		}
}

function regKontrol( pattern, value) {
   var r = new RegExp( pattern);
   return r.test( value );
}
var formGitti=false;
function formKontrol( form ) {
	if( formGitti)
		return false;
	var rv=true;
	if( fdntm[form.name] != undefined)
		rv=denetle( form, fdntm[form.name]);
	if( rv)
		rv=denetle( form, denetimler);
	return rv;
}
function denetle( form, denetim) {		
	var hatalar="";
	var uyarilar="";
	var ilkhata="";
	for( var i=0; i< denetim.length; i++) {
		for( var jj=0;jj<50;jj++) { // en cok 50 satirlik tablo olabilecegi varsayiliyor
			var alanadi=denetim[i].alan;
			if( jj>0) alanadi += ""+jj;
		for( var kk=0;kk<2; kk++)	{ 	// array de olabilir
			if( kk>0) alanadi += "[]";
			
			if( form[alanadi] /* && form[denetim[i].alan].type == denetim[i].tip */) { 
				var zid=denetim[i].zid.charAt(0);
				var kosulalani=denetim[i].zid.charAt(1);
				if( zid=='i') {
					if( form[alanadi].value == '')
						zid='d';
					else
						zid='z';
				}
				if( zid == 'k') {
					// kosullu denetim yapilacak
					if( kosulalani == '' || kosulalani == jj) {
						var sonuc=false;
						var ks="sonuc="+denetim[i].kosul.replace(/{SATIR}/,''+jj);
						eval( ks);
						if( sonuc)
							zid='z';
					}
				}
				if( zid != 'z')
					continue;
				var kapali=form[alanadi].disabled;
				form[alanadi].disabled=false;
				switch( denetim[i].tip) {
				default:
					if( denetim[i].oruntu.charAt(0) == '=') {
						if( form[alanadi].value != form[denetim[i].oruntu.substr(1)].value) {
							if( denetim[i].hu == 'u')
								uyarilar += denetim[i].uyari+"\n";
							else {
								if( hatalar == "")
									ilkhata=alanadi;
								hatalar += denetim[i].uyari+"\n";
							}
						}
					}
					else if( denetim[i].oruntu.charAt(0) == '|') {
						if( form[alanadi].value != "" && !regKontrol(denetim[i].oruntu.substr(1),form[alanadi].value)) {
							if( denetim[i].hu == 'u')
								uyarilar += denetim[i].uyari+"\n";
							else {
								if( hatalar == "")
									ilkhata=alanadi;
								hatalar += denetim[i].uyari+"\n";
							}
						}
					}
					else if( denetim[i].oruntu == 'KKNO') {
						gecerli_kart = new Validcc(form[denetim[i].alan].value);
						gecerli_kart.clean_no();
						gecerli_kart.check();
						if (gecerli_kart.type!="unknown" && gecerli_kart.valid) {
							form[denetim[i].alan].value = gecerli_kart.cc_no;
						}
						else {
							if( denetim[i].hu == 'u')
								uyarilar += denetim[i].uyari+"\n";
							else {
								if( hatalar == "")
									ilkhata=alanadi;
								hatalar += denetim[i].uyari+"\n";
							}
 						}
					}
					else {
						if( !regKontrol( denetim[i].oruntu, form[alanadi].value)) {
							if( denetim[i].hu == 'u')
								uyarilar += denetim[i].uyari+"\n";
							else {
								if( hatalar == "")
									ilkhata=alanadi;
								hatalar += denetim[i].uyari+"\n";
							}
						}
					}
					break;
				case 'radio':
				case 'radyo':
					var secilen='';
					if( form[alanadi].length == null) {
						// tek dugme var
						if( form[alanadi].checked)
							secilen=form[alanadi].value;
					}
					else {
						for( j=0; j<form[alanadi].length; j++)
							if( form[alanadi][j].checked) {
								secilen=form[alanadi][j].value;
								break;
							}
					}
					if( secilen=='') {
							if( denetim[i].hu == 'u')
								uyarilar += denetim[i].uyari+"\n";
							else {
								hatalar += denetim[i].uyari+"\n";
							}
					}
					break;
				case 'kutu':
					var secilen=0;
					if( form[alanadi].length == null) {
						// tek dugme var
						if( form[alanadi].checked)
							secilen++;
					}
					else {
						for( j=0; j<form[alanadi].length; j++)
							if( form[alanadi][j].checked) {
								secilen++;
								break;
							}
					}
					if( secilen == 0) { // su an icin sadece secim var yapilip yapilmadigina bakiyoruz
							if( denetim[i].hu == 'u')
								uyarilar += denetim[i].uyari+"\n";
							else {
								hatalar += denetim[i].uyari+"\n";
							}
					}
					break;
				case 'monu':
				case 'kkyil':
				case 'select-one':
				case 'il-monusu':
					var secilen=form[alanadi].selectedIndex;
					if( denetim[i].oruntu.charAt(0) == '>') {
						if( secilen < 0+denetim[i].oruntu.substr(1)) {
							if( denetim[i].hu == 'u')
								uyarilar += denetim[i].uyari+"\n";
							else {
								if( hatalar == "")
									ilkhata=alanadi;
								hatalar += denetim[i].uyari+"\n";
							}
						}
					}
					var kodu=form[alanadi].options[secilen].value;
					var deger=form[alanadi].options[secilen].text;
					if( kodu=='-') { // diger girilmis demektir 
						if( deger=='diğer' || deger=='diger') {
							uyarilar += "Diğer yer seçiminde gelen kutuya farklı bir giriş yapmalısınız\n";
						}
					}
					break;
				}
				form[alanadi].disabled=kapali;
			}
		}
		}
	}
	if( hatalar != '') {
		alert( hatalar);
		if( ilkhata!='') {
			if( form[ilkhata] != undefined)
				form[ilkhata].focus();
		}
		return false;
	}
	if( uyarilar != '') {
		return confirm( uyarilar);
	}
	for( var i=0; i<form.elements.length; i++)
		if( form.elements[i].type=='select-one' && form.elements[i].options[form.elements[i].selectedIndex].value=='X_')
				form.elements[i].options[form.elements[i].selectedIndex].value=form.elements[i].options[form.elements[i].selectedIndex].text;
	return true;
}

function ESKIdenetle(){		
	var hatalar="";
	var uyarilar="";
	var ilkhata="";
	for( var i=0; i< denetim.length; i++) {
		var alanadi=denetim[i].alan;
		if( form[alanadi] /* && form[alanadi].type == denetim[i].tip */) { 
			var zid=denetim[i].zid.charAt(0);
			var kosulalani=denetim[i].zid.charAt(1);
			if( zid=='i') {
				if( form[alanadi].value == '')
					zid='d';
				else
					zid='z';
			}
			if( zid == 'k') {
				// kosullu denetim yapilacak
				if( kosulalani == '') {
					var sonuc=false;
					var ks="sonuc="+denetim[i].kosul;
					eval( ks);
					if( sonuc)
						zid='z';
				}
			}
			if( zid != 'z')
				continue;
			var kapali=form[alanadi].disabled;
			form[alanadi].disabled=false;
			switch( denetim[i].tip) {
			default:
				if( denetim[i].oruntu.charAt(0) == '=') {
					if( form[alanadi].value != form[denetim[i].oruntu.substr(1)].value) {
						if( denetim[i].hu == 'u')
							uyarilar += denetim[i].uyari+"\n";
						else {
							if( hatalar == "")
								ilkhata=alanadi;
							hatalar += denetim[i].uyari+"\n";
						}
					}
				}
				else if( denetim[i].oruntu.charAt(0) == '|') {
					// BURADA INVALID IDENTIFIER + HATASI ALIYORUZ
					// TELNO REGEXPINDE SORUN OLMALI!
					if( form[alanadi].value != "" && !regKontrol(denetim[i].oruntu.substr(1),form[alanadi].value)) {
						if( denetim[i].hu == 'u')
							uyarilar += denetim[i].uyari+"\n";
						else {
							if( hatalar == "")
								ilkhata=alanadi;
							hatalar += denetim[i].uyari+"\n";
						}
					}
				}
				else if( denetim[i].oruntu == 'KKNO') {
					gecerli_kart = new Validcc(form[denetim[i].alan].value);
					gecerli_kart.clean_no();
					gecerli_kart.check();
					if (gecerli_kart.type!="unknown" && gecerli_kart.valid) {
						form[denetim[i].alan].value = gecerli_kart.cc_no;
					}
					else {
						if( denetim[i].hu == 'u')
							uyarilar += denetim[i].uyari+"\n";
						else {
							if( hatalar == "")
								ilkhata=alanadi;
							hatalar += denetim[i].uyari+"\n";
						}
						}
				}
				else {
					if( !regKontrol( denetim[i].oruntu, form[alanadi].value)) {
						if( denetim[i].hu == 'u')
							uyarilar += denetim[i].uyari+"\n";
						else {
							if( hatalar == "")
								ilkhata=alanadi;
							hatalar += denetim[i].uyari+"\n";
						}
					}
				}
				break;
			case 'radio':
			case 'radyo':
			case 'kargo-secimi':
				var secilen='';
				if( form[alanadi].length == null) {
					// tek dugme var
					if( form[alanadi].checked)
						secilen=form[alanadi].value;
				}
				else {
					for( j=0; j<form[alanadi].length; j++)
						if( form[alanadi][j].checked) {
							secilen=form[alanadi][j].value;
							break;
						}
				}
				if( secilen=='') {
					if( denetim[i].hu == 'u')
						uyarilar += denetim[i].uyari+"\n";
					else {
						hatalar += denetim[i].uyari+"\n";
					}
				}
				break;
			case 'kutu':
				var secilen=0;
				if( form[alanadi].length == null) {
					// tek dugme var
					if( form[alanadi].checked)
						secilen++;
				}
				else {
					for( j=0; j<form[alanadi].length; j++)
						if( form[alanadi][j].checked) {
							secilen++;
							break;
						}
				}
				if( secilen == 0) { // su an icin sadece secim var yapilip yapilmadigina bakiyoruz
					if( denetim[i].hu == 'u')
						uyarilar += denetim[i].uyari+"\n";
					else {
						hatalar += denetim[i].uyari+"\n";
					}
				}
				break;
			case 'monu':
			case 'select-one':
			case 'il-monusu':
				var secilen=form[alanadi].selectedIndex;
				if( denetim[i].oruntu.charAt(0) == '>') {
					if( secilen < 0+denetim[i].oruntu.substr(1)) {
						if( denetim[i].hu == 'u')
							uyarilar += denetim[i].uyari+"\n";
						else {
							if( hatalar == "")
								ilkhata=alanadi;
							hatalar += denetim[i].uyari+"\n";
						}
					}
				}
				var kodu=form[alanadi].options[secilen].value;
				var deger=form[alanadi].options[secilen].text;
				if( kodu=='X_' || kodu=='-') { // diger girilmis demektir 
					if( deger=='diğer' || deger=='diger') {
						uyarilar += "Diğer yer seçiminde gelen kutuya farklı bir giriş yapmalısınız\n";
					}
				}
				break;
			}
			form[alanadi].disabled=kapali;
		}
	}
	if( hatalar != '') {
		alert( hatalar);
		if( ilkhata!='') {
			if( form[ilkhata] != undefined)
				form[ilkhata].focus();
		}
		return false;
	}
	if( uyarilar != '') {
		return confirm( uyarilar);
	}
	for( var i=0; i<form.elements.length; i++)
		if( form.elements[i].type=='select-one' && form.elements[i].options[form.elements[i].selectedIndex].value=='X_')
				form.elements[i].options[form.elements[i].selectedIndex].value=form.elements[i].options[form.elements[i].selectedIndex].text;
	formGitti=true;
	return true;
}

/*
 * yerler monuleri islevleri
 */
function monuKodu( monu) {
	if( monu.slice( -4) == 'ulke')
		return 'ulke';
	if( monu.slice( -6) == 'eyalet')
		return 'eyalet';
	if( monu.slice( -2) == 'il')
		return 'il';
	if( monu.slice( -4) == 'ilce')
		return 'ilce';
	return 'semt';
}
function monuTemizle( fobj,monu,goster) {
	var el=fobj.elements;
	for( var i=0; i<el.length; i++) {
		if( el[i].name == monu) {
			el[i].options.length=1;
			// el[i].style.visibility = (monuKodu( el[i].name) == goster ? "visible" : "hidden");
			if( monuKodu( el[i].name) == goster) {
				el[i].disabled=false;
				el[i].options[0].text=goster+" seçiniz";
				/**
				if( goster=='il' && monuKodu(el[i-1].name) == 'eyalet' && el[i-1].length==1)
					el[i-1].options[0].text='Uygulanamaz';
				**/
				return el[i];
			}
			el[i].options[0].text="Diğer seçime bağlı...";
			el[i].disabled=true;
		}
	}
	return null;
}
function monuBossaEkle( fobj, monu, deger, yazi) {
	var el=fobj.elements;
	for( var i=0; i<el.length; i++) {
		if( el[i].name == monu) {
			if( el[i].options.length==1) {
				el[i].disabled=false;
				el[i].options[el[i].options.length]=new Option( yazi,deger,false,true);
				el[i].selectedIndex=el[i].length-1;
				el[i].disabled=true;
			}
			return el[i];
		}
	}
	return null;
}
function monuSecimi( fobj, monu) {
	var el=fobj.elements;
	for( var i=0; i<el.length; i++) {
		if( el[i].name == monu) {
			return el[i].selectedIndex;
		}
	}
	return 0;
}
function monuBak( formAdi, monu, grup, s, sec) {
	var fobj=document.forms[formAdi];
	if( s==null && monu.slice( -4) == 'ulke') {
		var sel=fobj.elements[fobj.elements.length - 1];
		var secili=0;
		for( var i=0; i<YER_MONUSU.secenekler.length; i++) {
			sel.options[sel.options.length]=new Option( YER_MONUSU.secenekler[i].baslik,YER_MONUSU.secenekler[i].kod, sec==YER_MONUSU.secenekler[i].kod || sec==YER_MONUSU.secenekler[i].baslik);
			if (sec==YER_MONUSU.secenekler[i].kod || sec==YER_MONUSU.secenekler[i].baslik) {
				if( sec != '')
					secili++;
				sel.selectedIndex=sel.options.length-1;
			}
		}
		if( secili==0 && sec != '') {
// alert( 'diger geldi:'+sec);
			if( sel.options[sel.options.length-1].value=='X_') {
				sel.options[sel.options.length-1].text=sec;
				sel.selectedIndex=sel.options.length-1;
			}
		}
		return;
	}
	var ga=grup.split(':');
	var nerde=YER_MONUSU;
	var i=0;
	for( ; i<ga.length; i++) {
		if( monu == ga[i])
			break;
		// burada sozkonusu menude secilen yere uyumlu nerde degiskeni atamasi yapilmali
		secim=monuSecimi( fobj, ga[i]);
// alert( "önceden seçilen "+ga[i]+" : "+secim+'   bakilan alan:'+nerde.alan);
		if( secim > 0) { // bir yer secilmis demektir
			if( monuKodu( ga[i]) == nerde.alan)
				nerde=nerde.secenekler[secim-1].monu; // en basta yer seciniz optionu var o nedenle 1 eksigi
		}
	}
	var kodu=monuKodu( monu);
	var basla=i;
	var bitir=i+1;
	if( s) { // yeni yer secildi
		var secim=s.selectedIndex;
		if( s.options[secim].value=='X_') {
			var diger=window.prompt(s.options[0].text,s.options[secim].text);
			if( diger && diger != '')
				s.options[secim].text=diger;
		}
		if( secim>0 && nerde.alan == kodu)
			nerde=nerde.secenekler[secim-1].monu;
		basla=i+1;
		bitir=ga.length;
	}
	for( var j=basla; j<bitir; j++) {
		var sel=monuTemizle( fobj, ga[j], nerde?nerde.alan:'');
		if( sel) { // monu ici doldurulacak
			var secili=0;
			for( var i=0; i<nerde.secenekler.length; i++) {
				sel.options[sel.options.length]=new Option( nerde.secenekler[i].baslik,nerde.secenekler[i].kod,sec==nerde.secenekler[i].kod || sec==nerde.secenekler[i].baslik);
				if( sec==nerde.secenekler[i].kod || sec==nerde.secenekler[i].baslik) {
					if( sec!='')
						secili++;
					sel.selectedIndex=sel.options.length-1;
				}
			}
			// bir onceki monu bos ise uygulanamaz secenegini ekleyip aktif yapmaliyiz
			if( secili==0 && sec != '') {
				if( sel.options[sel.options.length-1].value=='X_') {
					sel.options[sel.options.length-1].text=sec;
					sel.selectedIndex=sel.options.length-1;
				}
			}
			monuBossaEkle( fobj, ga[j-1], '', 'Uygulanamaz');
		}
	}
}
function alanesitmi(form, alanadi, deger, tipi) {
	if( tipi == "radio") {
		var secilen="";
		if( form[alanadi].length == null) {
			// tek dugme var
			if( form[alanadi].checked)
				secilen=form[alanadi].value;
		}
		else {
			for( j=0; j<form[alanadi].length; j++)
				if( form[alanadi][j].checked) {
					secilen=form[alanadi][j].value;
					break;
				}
		}
		return secilen == deger;
	}
	return( form[alanadi].value == deger);
}
function alanicindemi(form, alanadi, degerler, tipi) {
	if( tipi == "radio") {
		var secilen="";
		if( form[alanadi].length == null) {
			// tek dugme var
			if( form[alanadi].checked)
				secilen=form[alanadi].value;
		}
		else {
			for( j=0; j<form[alanadi].length; j++)
				if( form[alanadi][j].checked) {
					secilen=form[alanadi][j].value;
					break;
				}
		}
		for( var i=0; i<degerler.length;i++)
			if( secilen == degerler[i])
				return true;
		return false;
	}
	var secilen=form[alanadi].value;
	for( var i=0; i<degerler.length;i++)
		if( secilen == degerler[i])
			return true;
	return false;
}
function alanlarfarkli(form, alan1, alan2, tipi) {
	var rv=false;
	if( tipi == "radio") {
		var secilen="";
		if( form[alan2].length == null) {
			// tek dugme var
			if( form[alan2].checked)
				secilen=form[alan2].value;
		}
		else {
			for( j=0; j<form[alan2].length; j++)
				if( form[alan2][j].checked) {
					secilen=form[alan2][j].value;
					break;
				}
		}
		rv=alanesitmi( form, alan1, secilen);
	}
	else
		rv=alanesitmi( form, alan1, form[alan2].value, tipi);
alert( "GELDIM:"+rv);
	return rv ? false : true;
}
function alanvarmi(form,alanadi,sonek) {
	ekarr=sonek.split(',');
	for( var i=0; i<ekarr.length; i++)
		if( form[alanadi+ekarr[i]]!=undefined && form[alanadi+ekarr[i]].value != '')
			return true;
	return false;
}

/* 
    +----------------------------------------------------------------------+ 
    | Copyright (c) 2000 J.A.Greant  ( zak@nucleus.com )                   | 
    | ( See end of file for usage notes and licensing information.)        |
    | ( Written in PHP )                                                   | 
    +----------------------------------------------------------------------+ 

    +----------------------------------------------------------------------+ 
    | Copyright (c) 2001 Fatih Ustundag Yore Elektronik Yayimcilik A.S.    | 
    | ( JavaScript e adapte edildi. Kullanım örnekleri için dosyanın sonuna|  
    |  bakınız. )                                                          | 
    +----------------------------------------------------------------------+ 

*/ 
function Reverse(strToReverse) 
{
var strRev = new String;
var i = strToReverse.length;
while (i--)
strRev += strToReverse.charAt(i);
return strRev;
}
function Validcc_clean_no () 
{ 
// Kredi  Kart numarasındaki rakamsal olmayan değerleri temizler.
this.cc_no = this.cc_no.replace(/[^0-9]+/g, '');
} 
function Validcc_identify () 
{ 

// Kredi kartı tipini belirler
pattern_kart = /^4(.{12}|.{15})$/;
if (pattern_kart.test(this.cc_no))
    return 'Visa';

pattern_kart = /^5[1-5].{14}/;
if (pattern_kart.test(this.cc_no))
    return 'Mastercard';
    
pattern_kart = /^3[47].{13}$/;
if (pattern_kart.test(this.cc_no))
    return 'American Express';
    
pattern_kart = /^3(0[0-5].{11}|[68].{12})$/;    
if (pattern_kart.test(this.cc_no))
    return 'Diners Club/Carte Blanche'; 
    
pattern_kart = /^6011.{12}$/;
if (pattern_kart.test(this.cc_no))
    return 'Discover Card'; 
    
pattern_kart = /^(3.{15}|(2131|1800).{11})$/;
if (pattern_kart.test(this.cc_no))
    return 'JCB'; 
    
pattern_kart = /^2(014|149).{11}$/;
if (pattern_kart.test(this.cc_no))
    return 'enRoute'; 

return 'unknown'; 
} 
function Validcc_validate () 
{ 
        // Kredi kartı numarası ters cevrilir ve içinde rakam olmayan değerler temizlenir.
        temp_cc_no = Reverse(this.cc_no);
         
        // Doğrulama Algoritması
        // Ters çevrilmiş olan kredi kart numarası basamak basamak alınır
        // Her iki  basamakta bir  basamagin iki katı alınır.
        // Bunlar diger basamaklarla birlestirilir.
        digits = "";
        for (ndx = 0; ndx < temp_cc_no.length; ndx++) 
            digits += (ndx % 2) ? parseInt(temp_cc_no.charAt(ndx)) * 2 : temp_cc_no.charAt(ndx);
         
        //Tüm bu yeni rakamlar tek tek toplanir.
        sum = 0;
        for (ndx = 0; ndx < digits.length; ndx++) 
            sum += parseInt(digits.charAt(ndx));

        // Gecerli bir kredi karti icin bu toplam 10 a bölünebilir olmalidir.
        return (sum % 10) ? 0 : 1; 
} 
function Validcc_check () 
{ 
        this.valid = this.validate (); 
        this.type  = this.identify ();
}
function Validcc(ccno)
{
this.cc_no = ccno;
this.type  = "";
this.valid = 0;

this.validate = Validcc_validate;
this.check    = Validcc_check;
this.identify = Validcc_identify;
this.clean_no = Validcc_clean_no;
}
/* 
    +-----------------------------------------------------------------------------+ 
    | DOSYA ADI: valid_creditcard.js                                              | 
    +-----------------------------------------------------------------------------+ 
    | Yazar    : Fatih Ustundag                                                   | 
    | Email    : fatih@yore.com.tr                                                | 
    | Date     : 2001/10/02                                                       |
    | Kullanim : <SCRIPT LANGUAGE="JavaScript" SRC="valid_creditcard.js"></SCRIPT>| 
    +-----------------------------------------------------------------------------+ 
    | Validcc.clean_no() method                                                   | 
    | ------------------------------                                              | 
    | Kredi kartindaki tum rakamsal olmayan degerleri temizler ve kredi           | 
    | karti numarasini tekrar atar.  Parametresiz bir kere cagrilmasi             | 
    | yeterlidir.                                                                 | 
    |                                                                             | 
    | ORNEK KULLANIM:                                                             | 
    | kart_no ="5454 5454 5454 5454";                                             | 
    | kart = new Validcc(kart_no);                                                | 
    | kart.clean_no();                                                            |
    | alert(kart.cc_no); // Validcc Nesnesinin kart nosu 5454545454545454         | 
    |                                                                             |
    |                                                                             | 
    | Validcc.check() method                                                      | 
    | ---------------------------                                                 | 
    | check() methodu kredi kartinin gecerliligini ve tipini arastirir.           | 
    | Sonucta gecerli icin 1 ya da 0 ve tip icin de text doner                    |
    |                                                                             |
    | ORNEK KULLANIM:                                                             | 
    | kart_no ="5454 5454 5454 5454";                                             | 
    | kart = new Validcc(kart_no);                                                | 
    | kart.clean_no();                                                            |
    | kart.check();                                                               | 
    | alert("Kart Tipi : " + kart.type + " \n" + "Gecerliligi : " + kart.valid ); | 
    +-----------------------------------------------------------------------------+ 
*/

