/**
* @version		$Id: myJava.js 2.7.2
* @package		Javascript
* @copyright	Copyright (C) 17 Haziran 2007 All rights reserved.
* @license		GNU/GPL
* @encoding		UTF-8
* Javascript gelistiricileri icin hazırlanmış küçük ve sık kullanılan methodları içeren bir javascript
* modülüdür. Kullanımı ve geliştirilmesi tamamen Özgürdür.
* Js yüklendiinde initialize fonksiyonun içindeki tüm bilgilere erişilebilir.
* Java.is_firefox  @return true | false
*
*/

var Class = {create: function() { return function() { this.initialize.apply(this, arguments); } } };
var myJava = Class.create();
myJava.prototype = {
    initialize: function() {
		this.is_firefox    = false;
		this.is_ie		   = false;
		this.is_opera	   = false;
		this.version	   = null;
		this.ua			   = navigator.userAgent;
		this.charset	   = document.characterSet;
		this.outWidth	   = window.screen.availWidth;
		this.outHeight	   = window.screen.availHeight;
		this.screenHeight  = window.screen.height;
		this.screenWidth   = window.screen.width;
		this.cookie		   = navigator.cookieEnabled;
		this.platform	   = navigator.platform;
		this.IE 		   = 'MSIE';
		this.MZ 		   = 'Mozilla';
		this.OP 		   = 'Opera';
		this.browserCheck();
	},
	browserCheck:function(){
		if ((i = this.ua.indexOf(this.IE)) >= 0){
			this.is_ie = true;
			this.version = parseFloat(this.trim(this.ua).substr(i + this.IE.length));
		}else if((i = this.ua.indexOf(this.MZ)) >= 0){
			this.is_firefox = true;
			this.version = parseFloat(this.trim(this.ua).substr(this.MZ.length+1,2));
		}else if((i = this.ua.indexOf(this.OP)) >= 0){
			this.is_opera = true;
			this.version = parseFloat(this.trim(this.ua).substr(this.OP.length+1,2));
		}else{
			return false;
		}
	},
	trim : function(string){
			return  string.replace(/^\s+|\s+$/g,"");
	},
	jsimport:function(url){
		var newelem = document.createElement("script");
			newelem.setAttribute("language","javascript");
			newelem.setAttribute("type","text\/javascript");
			newelem.setAttribute("src",url);
			Java.document.getTags("head")[0].appendChild(newelem);
	},
	htmlspecialchars:function(text){
		if(typeof(text)=='undefined'|| !text.toString){return '';}
		if(text===false){return'0';} else if(text===true){return'1';}
		text = text.toString().replace(/&/g,'&amp;').replace(/\"/g,'&quot;').replace(/\'/g,'&#039;');
		text = text.replace(/</g,'&lt;').replace(/>/g,'&gt;');
		return text;
	}
}


myJava.prototype.setTimeout = function(func,timeout){
	try{
	window.setTimeout(func,timeout);
	}catch(e){}
}

myJava.prototype.string ={
    ara:function(text,aranacak){
        if(text.search (aranacak) != -1)
            return true;
        else
            return false;
    }

}


myJava.prototype.base64 ={
	encode:function(input){
        var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
        var result = '';
        var chr1, chr2, chr3;
        var enc1, enc2, enc3, enc4;
        var i = 0;
        input = this.trencode(input);
        do {
            chr1 = input.charCodeAt(i++);
            chr2 = input.charCodeAt(i++);
            chr3 = input.charCodeAt(i++);
            enc1 = chr1 >> 2;
            enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
            enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
            enc4 = chr3 & 63;
            if (isNaN(chr2)) {
                enc3 = enc4 = 64;
            } else if (isNaN(chr3)) {
                enc4 = 64;
            }
           result += chars.charAt(enc1) + chars.charAt(enc2) + chars.charAt(enc3) + chars.charAt(enc4);
        } while (i < input.length);

        return result;
    },
    decode:function(input){
        var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
        var result = '';
        var chr1, chr2, chr3;
        var enc1, enc2, enc3, enc4;
        var i = 0;
        var input = input.replace(/[^A-Za-z0-9\+\/\=]/g, '');
        do {
            enc1 = chars.indexOf(input.charAt(i++));
            enc2 = chars.indexOf(input.charAt(i++));
            enc3 = chars.indexOf(input.charAt(i++));
            enc4 = chars.indexOf(input.charAt(i++));
            chr1 = (enc1 << 2) | (enc2 >> 4);
            chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
            chr3 = ((enc3 & 3) << 6) | enc4;
            result += String.fromCharCode(chr1);
            if (enc3 != 64) {
                result += String.fromCharCode(chr2);
            }
            if (enc4 != 64) {
                result += String.fromCharCode(chr3);
            }
        } while (i < input.length);
         return Java.htmlspecialchars(this.trdecode(result));
    },
	trencode:function(str){
		    str=escape(str);
			str=str.replace(new RegExp('\\+','g'),'%2B');
	    return str.replace(new RegExp('%20','g'),'+');
	},
	trdecode:function(str){
			str=str.replace(new RegExp('\\+','g'),' ');
		return unescape(str);
	}
}

myJava.prototype.event = {
	add:function(element,olay,fonksiyon){
	    if (window.addEventListener != null) { // Firefox,Safari
	        olay = olay.substr(2);
	        element.addEventListener(olay,fonksiyon,false);
	    }else{
	        element.attachEvent (olay,fonksiyon);
	    }
	},
	remove: function(element,olay,fonksiyon){
	    if (window.addEventListener != null) { // Firefox,Safari
	        olay = olay.substr(2);
	        element.removeEventListener(olay,fonksiyon,false);
	    }else{
	        element.detachEvent(olay,fonksiyon);
	    }
	}
}


myJava.prototype.kordinat ={
    x : function(event){
        if(Java.is_firefox)
        xx = event.clientX + window.scrollX;
        else
        xx = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
        return xx;
    },
    y:function(event){
        if(Java.is_firefox)
        yy = event.clientY + window.scrollY ;
        else
        yy = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
        return yy;
    }
}

myJava.prototype.format = {
    numberFormat:function(nStr,prefix){
	    var prefix = prefix || '';
	    nStr += '';
	    x = nStr.split('.');
	    x1 = x[0];
	    x2 = x.length > 1 ? '.' + x[1] : '';
	    var rgx = /(\d+)(\d{3})/;
	    while (rgx.test(x1))
	        x1 = x1.replace(rgx, '$1' + ',' + '$2');
	    return prefix + x1 + x2;
    }

}

myJava.prototype.document = {
	deleteElement : function (ustDiv,altDiv){
			try{
				this.getId(ustDiv).removeChild(this.getId(altDiv));
			}catch (e){
				return false;
			}
	},
	createElement : function (param){
		try{
			var oldElement    = this.getId(param.element);
		}catch(e){
			try{
			var oldElement    = this.getName(param.element);
			}catch (e){
				var oldElement    = this.getTags(param.element);
			}
		}

		var newElementId  = param.newElementId || false;
		var elementType   = param.elementType || false;
		if( !oldElement && !newElementId)
			return false;

		var newelem = document.createElement(elementType);
			newelem.setAttribute("id",newElementId);
			oldElement.appendChild(newelem);
			return newelem;
	},
	getName :function(name){
		return document.getElementsByName(name);
	},
	getTags : function (tags){
		return document.getElementsByTagName(tags);
	},
	getId : function (id){
		return document.getElementById(id);
	},
	inHTML : function (text,id){
			var inID = this.getId(id);
			if(inID)
			inID.innerHTML = text.toString();
			//ajax cevabinda javascript varsa scriptleri sayfaya ekle
			if(this.ajaxJavaEnable)
			this.ajaxJavascript(inID);
	},
	ajaxJavaEnable:true,
	ajaxJavascript:function(element){
		if(typeof(element) == 'object'){
		var x = element.getElementsByTagName("script");
		}else{
			this.ajaxJavaEnable = false;
		var rand = Math.random().toString().substring(3,9)+'js';
		var newelem = document.createElement("div");
			this.setStyle(newelem,"width:0px;height:0px;display:none");
			newelem.setAttribute("id",rand);
			document.body.appendChild(newelem);
			this.inHTML(element,rand);
		var element = this.getId(rand);
		var x = element.getElementsByTagName("script");
		}

		for(var i=0;i<x.length;i++){
		var newelem = document.createElement("script");
			newelem.setAttribute("language","javascript");
			newelem.setAttribute("type","text\/javascript");
			newelem.text = x[i].text;
			this.getTags("head")[0].appendChild(newelem);
	    }
	},
	setCookie :function(name, value, gun){
		if(value.length > 4000)	return false;
		if(gun !== 0 ){
			var d=new Date();
				d.setTime(d.getTime()+(gun*24*60*60*1000));
			var expires="; expires="+d.toGMTString();
		}else{
			var expires = "";
		}
		document.cookie = name+"="+value+expires+"; path=/";
	},
	getCookie:function(name){
		var c=document.cookie ;
	    if (c.indexOf(name)!=-1) {
	        pos1=c.indexOf("=", c.indexOf(name))+1;
	        pos2=c.indexOf(";",pos1);
	        if(pos2==-1)    pos2=c.length;;
	        data=c.substring(pos1,pos2);
	        return Java.htmlspecialchars(data);
	    }
    },
    setStyle:function(element,param){

    	if(typeof(element) != 'object')
				element = Java.document.getId(element);

    	if(Java.is_firefox || Java.is_opera){
    		element.setAttribute("style",param);
    	}else{
    		element.style.cssText = param;
    	}
    },
	addStyle:function(id,param){

		var style;
			if(typeof(id) != 'object')
				id = this.getId(id);

			if(Java.is_ie)
				style =id.getAttribute("style").cssText;
			else
				style =id.getAttribute("style");
			style +=param.toString();
		this.setStyle(id,style);
	}
}

myJava.prototype.form ={
	multiple:function(id){
		var selectedArray = new Array();
		var selObj = Java.document.getId(id);
		var count = 0;
		for (var i=0; i<selObj.options.length; i++) {
		  if (selObj.options[i].selected) {
		    selectedArray[count] = selObj.options[i].value;
		    count++;
		  }
		}
		return selectedArray;
	},
	selected:function(id,value){
		var element = Java.document.getId(id);
		for(var i =0 ; i<element.length;i++){
			if(element[i].value == value)
				element[i].selected ="selected" ;
		}
	}
}

/**
* id li Selected elementinin value de�erine
* e�it de�erini se�ili yapar
*/
myJava.prototype.selected = function(id,value){
		Java.form.selected(id,value);
}

/**
* Verilerinizi kontrol etmenizi sa�lar,  Java.validate.isNumeric(3)  return true
*/
myJava.prototype.validate = {
	isNumeric : function(veri){
		try{
			var reg = /[^0-9]/ig;
				veri = veri.toString();
			return	veri.match(reg) ? false:true ;
		}catch(e){
			return false;
		}
	},
	isUsername: function(veri){
		try{
			var reg = /[^a-zA-Z0-9_-]/ig;
				veri = veri.toString();
			return	veri.match(reg) ? false:true ;
		}catch(e){
			return false;
		}
	},
	isEmail: function (veri){
		try{
			var reg= /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/ig;
				veri = veri.toString();
			return	veri.match(reg) ? true:false ;
		}catch(e){
			return false;
		}
	}
}

/**
* Ana Sayfa ve Favorilere Ekleme yapar .
* Ansa Sayfa + Favori : favori.anaSayfa(url,title)
* Favori : favori.ekle(url,title)
*/
myJava.prototype.favori = {
	title:document.title,
	url:document.location.href,
	ekle:function(title,url){
		title = typeof title === "undefined" ? document.title:title;
		url = typeof url === "undefined" ? document.location.href:url;
		if (window.sidebar) { // Mozilla Firefox Bookmark
			window.sidebar.addPanel(title,url,false);
		} else if( window.external ) { // IE Favorite
			window.external.AddFavorite(url,title);
		}else if(window.opera && window.print) { // Opera Hotlist
			return true;
		}
	},
	anaSayfa : function(){
		if ( window.addEventListener == null ) { // IE Favorite
			document.body.style.behavior='url(#default#homepage)';
			document.body.setHomePage(document.location.href);
		}
		//	var sign = confirm("Adres S�k Kullan�lanlar Listenizede eklensin mi?");
		//	if(sign)
		//		this.ekle(url);

	}
}


myJava.prototype.utf8 = {
	 encode : function (string) {
        string = string.replace(/\r\n/g,"\n");
        var utftext = "";
        for (var n = 0; n < string.length; n++) {
            var c = string.charCodeAt(n);
            if (c < 128) {
                utftext += String.fromCharCode(c);
            }else if((c > 127) && (c < 2048)) {
                utftext += String.fromCharCode((c >> 6) | 192);
                utftext += String.fromCharCode((c & 63) | 128);
            }else {
                utftext += String.fromCharCode((c >> 12) | 224);
                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                utftext += String.fromCharCode((c & 63) | 128);
            }
        }
			utftext=utftext.replace(/;/ig,"__");
        return utftext;
    },
    decode : function (utftext) {
        var string = "";
        var i = 0;
        var c = c1 = c2 = 0;

        while ( i < utftext.length ) {

            c = utftext.charCodeAt(i);

            if (c < 128) {
                string += String.fromCharCode(c);
                i++;
            }else if((c > 191) && (c < 224)) {
                c2 = utftext.charCodeAt(i+1);
                string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
                i += 2;
            }else {
                c2 = utftext.charCodeAt(i+1);
                c3 = utftext.charCodeAt(i+2);
                string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
                i += 3;
            }
        }
		string=string.replace(/__/ig,";");
        return string;
    }

}

myJava.prototype.latinURL =function(url){
	return escape(url);
}

myJava.prototype.urlEncode = function(decimal){
		var hexchars = "0123456789ABCDEFabcdef";
	    return "%" + hexchars.charAt(decimal >> 4) + hexchars.charAt(decimal & 0xF);
}

myJava.prototype.string ={
	numerical:function(text){
		 var string = "";
         var i = 0;
         var c = c1 = c2 = 0;
     	 var tag = '&#';
         while ( i < text.length ) {
            c = text.charCodeAt(i);
            string += tag+c;
            i++;
         }
        return string;
	}
}


/**
* Slileder
* Java.slide.init( {id:"someimage",position:"left",xEnd:50} );
*/
myJava.prototype.slide={
	 iebug:false,
	 init:function(param){
        var id = param.id;
        var position = param.position || 'left';
       // var endStyle = param.endStyle || '';
        var xStart    =param.xStart || 0;
        var xEnd      =param.xEnd || 0;
        var millisec = param.millisec || 500;

        var speed = Math.round(millisec / 100);
        var timer = 0;

        if(xStart > xEnd) {
	        for(i = xStart; i  >= xEnd; i-=3) {
	        	window.setTimeout("Java.slide.slide(" + i + ",'" +id+ "','" +position+ "')",(timer * speed));
	         	timer++;
	        }
        }else if(xStart < xEnd) {

        	for(i = xStart; i <= xEnd; i+=3) {
	            window.setTimeout("Java.slide.slide(" + i + ",'" +id+ "','" +position+ "')",(timer * speed));
		        timer++;
	        }
        }
    },
    slide:function(sayi,id,position,endStyle){

    	if(Java.is_firefox || Java.slide.iebug )
        Java.document.addStyle(id,";"+position+":"+sayi+"px;");
        else
        Java.document.getId(id).style.left=sayi;
    }
}

/**
* Elementin fade efekti vermesini sağlar
* ex : Java.fade.init(id,100,0,500);
*/
myJava.prototype.fade = {

	init:function(id, opacStart, opacEnd, millisec){
		var speed = Math.round(millisec / 100);
		var timer = 0;

		if(Java.is_ie && opacStart==0)
		Java.document.addStyle(Java.document.getId(id),"display:block;filter:alpha(opacity=2)");

		if(opacStart > opacEnd) {
	        for(i = opacStart; i >= (opacEnd-3); i-=3) {
	        	window.setTimeout("Java.fade.opac(" + i + ",'" +id+ "')",(timer * speed));
	               timer++;
	        }
	    } else if(opacStart < opacEnd) {
	        for(i = opacStart; i <= (opacEnd+3); i+=3){
	            window.setTimeout("Java.fade.opac(" + i + ",'" +id+ "')",(timer * speed));
	            timer++;
	        }
	    }
	},
	opac:function(opacity, id) {
			var element = Java.document.getId(id);
			object = element.style;

		    object.opacity = (opacity / 100);
			object.MozOpacity = (opacity / 100);
			object.KhtmlOpacity = (opacity / 100);
			object.filter = "alpha(opacity=" + opacity + ")";

			if(opacity<2){
			Java.document.addStyle(element,";display:none");
			}else if(opacity===3){
			Java.document.addStyle(element,";display:block;");
			}
	}
}

/**
* Elementi tasimak icin
* Java.drag.attach(id);
*/
myJava.prototype.drag ={
	_oElem : null,
	attach : function(id){
		var oElem = Java.document.getId(id);

		if(oElem == null){
			Java.event.add(window,"onload",function(){Java.drag.attach(id);});
			return;
		}
		oElem.onmousemover = Java.document.addStyle(oElem,";cursor:move");
		oElem.onclick = function(){Java.document.addStyle(oElem,";position:relative");}
		oElem.onmousedown = Java.drag._dragBegin;
		oElem.dragBegin = new Function();
		oElem.drag = new Function();
		oElem.dragEnd = new Function();
		return oElem;
	},
	_dragBegin : function(e) {
		var oElem = Java.drag._oElem = this;
		if (isNaN(parseInt(oElem.style.left))) { oElem.style.left = '0px'; }
		if (isNaN(parseInt(oElem.style.top))) { oElem.style.top = '0px'; }
		var x = parseInt(oElem.style.left);
		var y = parseInt(oElem.style.top);
		e = e ? e : window.event;
		oElem.mouseX = e.clientX;
		oElem.mouseY = e.clientY;
		oElem.dragBegin(oElem, x, y);
		document.onmousemove = Java.drag._drag;
		document.onmouseup = Java.drag._dragEnd;
		return false;
	},
	_drag : function(e) {
		var oElem = Java.drag._oElem;
		var x = parseInt(oElem.style.left);
		var y = parseInt(oElem.style.top);
		e = e ? e : window.event;
		Java.document.addStyle(oElem,";filter:alpha(opacity=60);-moz-opacity:.60;opacity:.60;");
		oElem.style.left = x + (e.clientX - oElem.mouseX) + 'px';
		oElem.style.top = y + (e.clientY - oElem.mouseY) + 'px';
		oElem.mouseX = e.clientX;
		oElem.mouseY = e.clientY;
		oElem.drag(oElem, x, y);
		return false;
	},
	_dragEnd : function() {
		var oElem = Java.drag._oElem;
		var x = parseInt(oElem.style.left);
		var y = parseInt(oElem.style.top);
		Java.document.addStyle(oElem,";filter:alpha(opacity=100);-moz-opacity:1;opacity:1;");
		oElem.dragEnd(oElem, x, y);
		document.onmousemove = null;
		document.onmouseup = null;
		Java.drag._oElem = null;
	}
}


/**
* Ajax �zelli�ini ekler .
*  Java.HttpRequest( { url:test.php,  method:'GET', data:'ali=1&veli=2', ajaxResponse:cevap, ajaxErorr:hata, encode:'UTF-8'} )
*
*/

myJava.prototype.HttpRequest = function (parametre){
	 var  HttpRequest = false;
     var  url		  = parametre.url || false;
	 var  method	  = parametre.method || 'GET';
 	 var  data	      = parametre.data || false;
	 var  ajaxResponse= parametre.ajaxResponse || false;
	 var  ajaxErorr	  = parametre.ajaxErorr	|| false;
	 var  encode 	  = parametre.encode || 'UTF-8';
      if (window.XMLHttpRequest) {
         HttpRequest = new XMLHttpRequest();
         if (HttpRequest.overrideMimeType){
            HttpRequest.overrideMimeType('application/xml;');
			HttpRequest.overrideMimeType('charset='+encode);
		}
      } else if (window.ActiveXObject) {
         try {
            HttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
         } catch (e) {
            try {
               HttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
         }
      }

      if (!HttpRequest) {
      	if(ajaxErorr !== false)
		  setTimeout(function(){ajaxErorr(HttpRequest);}, 10);
         return false;
      }
      HttpRequest.onreadystatechange = ajaxReturn;
	  if( method == 'GET' ){

	  	  if(!data)
		  HttpRequest.open('GET', url, true);
		  else
		  HttpRequest.open('GET', url+'?'+data, true);
		  HttpRequest.send(null);
	  }else{
		  HttpRequest.open('POST', url, true);
		  HttpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		  HttpRequest.setRequestHeader("Connection", "close");
		  HttpRequest.send(data);
	  }
    function ajaxReturn() {
     	 if (HttpRequest.readyState == 4 ) {
			 if ( HttpRequest.status == 200) {

					setTimeout(function(){ajaxResponse(HttpRequest);}, 10);
			   }else {
			   	  if(ajaxErorr !== false)
					setTimeout(function(){ajaxErorr(HttpRequest);}, 10);
			   }
		 }
      }

}

if(!Array.indexOf){
 Array.prototype.indexOf=function(o){
    for(var i=0;i<this .length;i++){
      if(this[i]==o) return i;
    }
    return -1;
 }
}

var Java = new myJava();
