﻿/* Singleline functions
---------------------------------------------------------------- */

function $d(d){
	return document.getElementById(d);
}

/* Toogle text
---------------------------------------------------------------- */

var field = function(){
	return {
		focus:function(f,txt){
			if(f.value==txt){
				f.value='';
			}else{
				f.select();
			}
		},
		blur:function(f,txt){
			if(f.value==''){
				f.value=txt;
			}
		},
		login:function(f){
			var ema = $d('email');
			var pas = $d('password');
			var str = f.id;
			if(ema && pas){
				if(str=='email'){if(f.value!=''){ema.className = 'cleaned';}else{ema.className = '';}}
				if(str=='password'){if(f.value!=''){pas.className = 'cleaned';}else{pas.className = '';}}
			}
		}
	};
}();

/* Validation
---------------------------------------------------------------- */

var validate = function(){
	var execute = true;
	return {
		err:function(f,act){
			var obj = $d(f);
			if(obj){if(act=='reset'){obj.style.backgroundColor = '#ffffff';}else{obj.style.backgroundColor = '#f8ff8a';}}
		},
		email:function(str){
			var filter = /^[^\s@]+@[^\s@]+\.[a-z]{2,6}$/i;
			if(filter.test(str)){return true;}else{return false;}
		},
		empty:function(str){
			var filter = /^\s+$/;
			var expression;
			if(filter.test(str) || str==''){expression = false;}else{expression = true;}
			return expression;
		},
		onlynumbers:function(evt){
			var charCode = (evt.which) ? evt.which : event.keyCode;
			if(charCode > 31 && (charCode < 48 || charCode > 57)){return false;}else{return true;}
		},
		login:function(f){
			execute = true;
			if(!validate.empty(f.email.value)){
				execute = false;
			}
			if(!validate.empty(f.password.value)){
				execute = false;
			}
			return execute;
		}
	};
}();

/* Stories (frontpage)
---------------------------------------------------------------- */

var stories = function(){
	return {
		click:function(f,url){
			stories.reset();
			if(url){
				ajax.load(url,'stories-ajax',true);
				f.className = 'selected';
				window.scrollTo(0,160);
			}
		},
		reset:function(){
			var obj = $d('stories');
			var items = obj.getElementsByTagName('a');
			for(var d=0;d<items.length;d+=1){
				items[d].className = '';
			}
		}
	};
}();

/* Toogle blocks
---------------------------------------------------------------- */

var toogle = function(){
	return {
		click:function(f,m){
			var obj = $d(m);
			if(obj){
				if(obj.className=='autohide'){
					f.className = '';
					obj.className = '';
				}else{
					f.className = 'down';
					obj.className = 'autohide';
				}
			}
		},
		reset:function(){
			var obj = $d('stories');
			var items = obj.getElementsByTagName('a');
			for(var d=0;d<items.length;d+=1){
				items[d].className = '';
			}
		},
		contact:function(f){
			var cph = $d('contact-phone-label');
			var cem = $d('contact-email-label');
			var pho = $d('phone');
			var ema = $d('emailc');
			if(cph && cem && pho && ema){
				if(f=='phone'){
					cph.className = '';
					cem.className = 'disabled';
					pho.className = '';
					ema.className = 'disabled';
					pho.disabled = false;
					ema.disabled = true;
					pho.focus();
				}else{
					cph.className = 'disabled';
					cem.className = '';
					pho.className = 'disabled';
					ema.className = '';
					pho.disabled = true;
					ema.disabled = false;
					ema.focus();
				}
			}
		},
		when:function(f){
			var ct1 = $d('contact1-label');
			var ct2 = $d('contact2-label');
			var ct3 = $d('contact3-label');
			var ct4 = $d('contact4-label');
			if(ct1 && ct2 && ct3 && ct4){
				ct1.className = 'disabled';
				ct2.className = 'disabled';
				ct3.className = 'disabled';
				ct4.className = 'disabled';
				if(f=='1'){
					ct1.className = '';
				}else if(f=='2'){
					ct2.className = '';
				}else if(f=='3'){
					ct3.className = '';
				}else if(f=='4'){
					ct4.className = '';
				}
			}
		},
		body:function(f){
			/*var obj = $d('ctn');
			var rig = $d('right');
			var log = $d('logo');
			if(obj && rig){
				var h = obj.offsetHeight;
				var r = rig.offsetHeight;
				var y = library.elementposition(obj);
				var sh = library.documentdimensions();
				var tmp = y.split('/');
				var tsh = sh.split('/');
				var rst = parseInt(tsh[1]) - parseInt(tmp[1]);
				if(rst>r){
					obj.style.height = (rst + 50) + 'px';
				}else{
					obj.style.height = r + 'px';
				}
			}
			if(log){
				var sh = library.documentdimensions();
				var tsh = sh.split('/');
				var whx = parseInt(tsh[0]);
				if(whx>=1130){log.className = 'abs';}else{log.className = 'abs genhr';}
			}
		*/}
	};
}();

/* Elastic textarea
---------------------------------------------------------------- */

var elastic = function(){
	return {
		key:function(f,typ){
			var area;var minf;var maxf;
			if(typ=='mod'){
				area='textarea-div-t1';
				minf = '14';
				maxf = '220';
			}
			var dwo = $d(area);
			var tar = $d(f.id);
			var str = f.value;
			str = str.replace(/\n/gi, "<br />&nbsp;")
			str = str.replace(/\r\n/gi, "<br />&nbsp;")
			if(dwo){dwo.innerHTML = str;}
			var offh = (parseInt(dwo.offsetHeight) + 10);
			if(offh<minf){
				tar.style.height = minf+'px';
				tar.style.overflow = 'hidden';
			}else if(offh>minf && offh < maxf){
				tar.style.height = offh + 'px';
				tar.style.overflow = 'hidden';
			}else if(offh>maxf){
				tar.style.height = maxf+'px';
				tar.style.overflow = 'auto';
			}
		}
	};
}();

/* Ajax <|> ajax.load('http://','ajaxdiv',true,hash,['customfunction()','anotherfunction()']);
---------------------------------------------------------------- */

var ajax = function(){
	return {
		nocache:function(){
			var minutes = 1000 * 60;
			var hours = minutes * 60;
			var days = hours * 24;
			var years = days * 365;
			var d = new Date();
			var t = d.getTime();
			return t;
		},
		load:function(url,container,load,store,functions){
			var obj = document.getElementById(container);
			var loader = '<div class="loading"><span>Loading...</span></div>';
			if(obj && url){
				if(load){obj.innerHTML = loader;}
				ajax.page(url,container,functions);

      
				
			}
		},
		page:function(url,container,functions){
			var _url = '';var _no = '';var page_request = false;
			if(url.indexOf("?")==-1){_no = '?nocache=' + ajax.nocache();}else{_no = '&nocache=' + ajax.nocache();}
			_url = url + _no;
			
			if(window.XMLHttpRequest){
				page_request = new XMLHttpRequest();
			}else if(window.ActiveXObject){
				try{
					page_request = new ActiveXObject('Msxml2.XMLHTTP');
				}catch(e){
					try{
						page_request = new ActiveXObject('Microsoft.XMLHTTP');
					}catch(e){}
				}
			}else{
				return false;
			}

			page_request.onreadystatechange = function(){
				ajax.parse(page_request,container,functions);
			}
			page_request.open('GET', _url, true);
			page_request.send(null);
		},
		parse:function(page_request,container,functions){
			if(page_request.readyState==4 && (page_request.status==200 || window.location.href.indexOf('http')==-1)){
				document.getElementById(container).innerHTML = page_request.responseText;
				ajax.completed(functions);
			}
		},
		completed:function(functions){
			// After complete functions here..
			if(functions){
				for(var i=0;i<functions.length;i++){
					try{eval(functions[i]);}catch(e){alert(e.description);}
				}
								

			}
			if (window.addthis) {
				window.addthis.ost = 0;
				window.addthis.ready();
			}
		}
	};
}();

/* Library
---------------------------------------------------------------- */

var library = function(){
	return {
		elementposition:function(obj){
			var curleft=curtop=0;
			if (obj.offsetParent){
				curleft=obj.offsetLeft;
				curtop=obj.offsetTop;
				while(obj=obj.offsetParent){
					curleft+=obj.offsetLeft
					curtop+=obj.offsetTop
				}
			}
			return curleft+'/'+curtop;
		},
		cursorposition:function(e){
			e = e || window.event;
		    var cursor = {x:0, y:0};
		    if(e.pageX || e.pageY){
		        cursor.x = e.pageX;
		        cursor.y = e.pageY;
		    }else{
		        var de = document.documentElement;
		        var b = document.body;
		        cursor.x = e.clientX + (de.scrollLeft || b.scrollLeft) - (de.clientLeft || 0);
		        cursor.y = e.clientY + (de.scrollTop || b.scrollTop) - (de.clientTop || 0);
		    }
		    return cursor.x+'/'+cursor.y;
		},
		documentdimensions:function(){
			var myWidth = 0, myHeight = 0;
			if(typeof(window.innerWidth)=='number'){
				myWidth = window.innerWidth;
				myHeight = window.innerHeight;
			}else if(document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)){
				myWidth = document.documentElement.clientWidth;
				myHeight = document.documentElement.clientHeight;
			}else if(document.body && (document.body.clientWidth || document.body.clientHeight)){
				myWidth = document.body.clientWidth;
				myHeight = document.body.clientHeight;
			}
			return myWidth+'/'+myHeight;
		},
		scrollposition:function(){
			var myTop = 0, myLeft = 0;
			if(document.all){
				myLeft = (document.documentElement.scrollLeft) ? document.documentElement.scrollLeft : document.body.scrollLeft;
				myTop = (document.documentElement.scrollTop) ? document.documentElement.scrollTop : document.body.scrollTop;
			}else{
				myLeft = window.pageXOffset;
				myTop = window.pageYOffset
			}
			return myLeft+'/'+myTop;
		},
		whichelement:function(e){
			var targ,found=false;
			if(!e){var e=window.event;}
			if(e.target){targ=e.target;}else if(e.srcElement){targ=e.srcElement;}
			if(targ.nodeType==3){targ=targ.parentNode;}
			if(targ.className=='contextmenu'){found=true;}else{found=false;}
			return found;
		},
		keycode:function(evt){
			evt = (evt) ? evt : ((event) ? event : null);
			var evver = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null );
			var keynumber = evt.keyCode;
			if(keynumber){return keynumber;}
		},
		getstyle:function(el,prop){
			var x = $d(el);var y;
			if(x.currentStyle){
				y = x.currentStyle[prop];
			}else if (window.getComputedStyle){
				y = document.defaultView.getComputedStyle(x,null).getPropertyValue(prop);
			}
			return y;
		}
	};
}();






/* Responsive
---------------------------------------------------------------- */

var responsive = function(){
	
	return {
		initialize:function(){
			responsive.adjust();
		},
		adjust:function(){
			var tmp = library.documentdimensions();
			var win = tmp.split('/');
			var wx = parseInt(win[0]);
			//alert(wx);
			if(wx<600 || mobile.detect()){
				
				responsive.set('phone');
			}else if(wx>600 && wx<=981){
				
				responsive.set('ipad');
			}else{
				
				//responsive.set('screen');
			}
		},
		set:function(f){
			var items = document.getElementsByTagName("link");
			for(var i=0;i<items.length;i++){
				var elm = items[i];
				if(elm.getAttribute("rel").indexOf("style")!=-1 && elm.getAttribute("title")){
					
				if	(elm.getAttribute("title")!='screen'){
					elm.disabled = true;
				}
					
					if(elm.getAttribute("title")==f){
						elm.disabled = false;
					}
				}
			}
		}
	};
}();

/* Mobile?
---------------------------------------------------------------- */

var mobile = function(){
	return {
		detect:function(){
			var uagent = navigator.userAgent.toLowerCase(); 
			var list = this.mobiles;
			var ismobile = false;
			for(var d=0;d<list.length;d+=1){
				if(uagent.indexOf(list[d])!=-1){
					ismobile = true;
				}
			}
			return ismobile;
		},
		mobiles:[
			"midp","240x320","blackberry","netfront","nokia","panasonic",
			"portalmmm","sharp","sie-","sonyericsson","symbian",
			"windows ce","benq","mda","mot-","opera mini",
			"philips","pocket pc","sagem","samsung","sda",
			"sgh-","vodafone","xda","palm","iphone",
			"ipod","android"
		]
	};
}();

responsive.initialize();

/* Window onload
---------------------------------------------------------------- */

window.onload = function(){
	
	responsive.adjust();
	toogle.body();
}

/* Window onresize
---------------------------------------------------------------- */

window.onresize = function(){
	toogle.body();
	responsive.adjust();
}
