$(init_page);

function init_page(){
  BrowserDetect.init();  
  $('#news_scroll').newscroll();
  $('#bottom_menu').bottom_tab();
  make_scrollable();
    
  if($.fn.jScrollPane){
    // Init Scrollbar
    $('.scrollable').jScrollPane({scrollbarWidth:6, animateTo:true, animateInterval:50}); 
  }
  setup_service_menu();

  $('#intro_overlay').height($('body').height());
  
  var hash = location.hash.replace(/#/,'');  
  if(hash!='') skip_intro();
}


function is_valid_email(email) {
   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   if(reg.test(email) == false) {
      return false;
   }
   return true;
}

function skip_intro(){
  $('#intro_overlay').fadeOut(function(){
    $('#intro_overlay').remove();
    
    // set cookie to skip intro;
    setCookie('skip_intro',1, 1);
    
    
  });
  
  
}

function make_scrollable(){
   var text_orig        = $("#content_main").html();
   var height_orig_c    = $("#content").height();
   var height_orig_cm   = $("#content_main").height();
   var reg     = /\<p class.+?subtitle.[\w\W]*?\<\/p\>/i;
   var reg2    = /\<ul class.+?page_links.*?\>/i;
   var reg3    = /\<div class.+?project_nav.*?\>/i;
   var reg4    = /\<div id.+?gallery_items.*?\>/i;
   var y, z, regmatch1, regmatch2, result;

   //alert('height orig c' + height_orig_c);
   //alert('height orig cm' + height_orig_cm);

   if( height_orig_c - height_orig_cm < 50)
   {  if( regmatch1 = reg.exec(text_orig))
      { y = text_orig.split(reg);
        //alert(text_orig);  
        //alert(y[1]);

        if( regmatch2 = reg2.exec(y[1]))
        {  z = y[1].split(reg2);
           result = y[0] + regmatch1 + "\n\n" + '<div class="scrollable">' + z[0] + '</div>' + "\n\n" + regmatch2 + z[1];
        }
        else if( regmatch2 = reg3.exec(y[1]))
        {  z = y[1].split(reg3);
           result = y[0] + regmatch1 + "\n\n" + '<div class="scrollable">' + z[0] + '</div>' + "\n\n" + regmatch2 + z[1];
        }
        else if( regmatch2 = reg4.exec(y[1]))
        {  z = y[1].split(reg4);
           result = y[0] + regmatch1 + "\n\n" + '<div class="scrollable">' + z[0] + '</div>' + "\n\n" + regmatch2 + z[1];
        }
        else
        {  result = y[0] + regmatch1 + "\n\n" + '<div class="scrollable">' + y[1] + '</div>';
        }

        //alert(result);

        $("#content_main").html(result)

        var offset_top = $(".scrollable").offset().top;
        var scrollheight = 205;
        //alert('offset top ' + offset_top);
        //alert('scrollheight ' + scrollheight);
        $(".scrollable").height(scrollheight);
     }
  }
}


function setCookie(c_name,value,expiredays){
  var exdate=new Date();
  exdate.setDate(exdate.getDate()+expiredays);
  document.cookie=c_name+ "=" +escape(value)+
  ((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}

function setup_service_menu(){
  
  $('.service_menu a img').each(function(idx){

    if(typeof(preload_images)=='undefined'){
      preload_images = new Array();  
    }
    
    var src = $(this).attr('src');
    var new_src = src.replace('.','_on.');

    var img = new Image();
    img.onload = function(){
     // alert(this);  
    }
    img.src = new_src;
    preload_images.push(img);
    
    $(this).hover(
      function(){$(this).attr('src',new_src);},
      function(){$(this).attr('src',src);}
    );
    
  });   
  
  $('.service_menu').wrapInner('<div class="pan"></div>');
  
  var n_item = 0;
  $('.service_menu a.service_thumb').each(function(){
    // animate with timer
    
    $(this).css({marginTop: 50,opacity:0});

    show_item_delay(this, (n_item * 200) + 10);
    
     n_item++;
      
  });   
}

function show_item_delay(obj, sec){
    setTimeout(function(){
      $(obj).animate({marginTop:0,opacity:1},500);
    }, sec );  
}

function launch_gallery(){

  $($('#gallery_items a')[0]).trigger('click');
}

/* Browser Detection Class */
var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari",
			versionSearch: "Version"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]
};

