$(document).ready(function(){	
	if (!Modernizr.boxshadow){
		wrap('#banner');
		wrap('#content');
		wrap('.module', true);
		wrap('.project');
	}
	if (!Modernizr.borderradius){
		$('#nav a').append('<span></span>');
	}
	//getStocks('CGRXF.PK');
	/*************Flash Banner****************/
	if ($('#flashbanner').length){
		var params = {
			bgcolor:'none',
			wmode:'transparent'
		};
		var flashvars = {};
		swfobject.embedSWF(getPath()+'flash/cougar_banner_v1.swf', 'flashbanner', '960', '346', '9', false, flashvars, params);
	}
	/************News************************/
	if ($('#news-table').length){
		getNewsTable();
		$('#sub-nav a').click(function(){
			var year = reqFromURL($(this).attr('href'),'year');
			
			getNewsTable(year);
			$('#sub-nav li').removeClass('current');
			if (year){
				$(this).parent().addClass('current');
			}
			return false;
		});
		$('.page-shifter').click(function(){
			var direction = $(this).attr('id').replace('news-','');
			var current = Number($('#news-pages a.current').text());
			var page;
			
			if (direction == 'next' && current < $('#news-pages a').length){
				page = current;
			}else if (direction == 'prev' && current > 1){
				page = current-2;
			}else{
				return false;
			}
			var year = reqFromURL($(this).attr('href'), 'year');			
			getNewsTable(year,page);
			return false;
		});		
	}
	/***********Contact Form*************/
	$('#contact-form :text, #contact-form textarea').each(defaultText).blur(defaultText).focus(focusText);
	$('#contact-form').submit(validateContact);
	$('#captcha-reload').click(function(){
		$('#captchaimage').attr('src','securimage/securimage_show.php?'+Math.random());
		return false;
	});
	/***********Banners*****************/
	$('#banner-choice').change(changeBanner);
	$('#banner-upload').change(function(){
		$('#banner-choice').append('<option value="new">New Banner</option>');
		$('#banner-choice').val('new');
	});	
	/***********Page Management*********/
	$('#deletepage').click(function(){
		return confirm('Are You Sure You Want to Delete This Page?');
	});
	$('#thumb-choice').change(changeThumb);
	$('#thumb-upload').change(function(){
		$('#thumb-choice').append('<option value="new">New Thumbnail</option>');
		$('#thumb-choice').val('new');
	});
	if ($('.dialog').length){
		$('.dialog').dialog({
			modal:true,
			autoOpen:false,
			width:600			
		});		
		$('#edit-quicklinks-dialog').dialog({
			buttons:{
				'Save':function(){$('#quicklink-form').submit();}
			}
		});
		$('.edit-link').click(editQuickLinks);
		$('#add-quicklinks').click(addQuickLink);
		$('.quicklink-delete').click(function(){
			return confirm('Are You Sure You Want to Delete This Quick Link?');
		});
	}
	if ($('.admin-news').length){
		$('#edit-news-dialog').dialog({
			buttons:{
				'Save':function(){$('#news-form').submit();}
			}
		});
		$('#edit-news-date').datepicker({
			dateFormat:'M dd, yy'
		});
		$('#add-news').click(addNews);
	}
	$('#content-edit').submit(function(){
		var message = '';
		if ($('#pagetitle').length){
			if ($('#pagetitle').val() == ''){
				message += 'Page Title (Full Name) must not be blank\n';
			}
		}
		if ($('#pathname').length){
			if ($('#pathname').val() == ''){
				message += 'Path Name (Short Name) must not be blank\n';
			}
		}
		if (message.length > 0){
			alert(message);
			return false;
		}else{
			return true;
		}
	});
	/*************************OPEN TINY BROWSER***********************/
	$('#open-linkfolder').click(function(){				
		tinyBrowserPopUp('file','quicklink-edit-link');
		return false;
	});
	$('#open-newsfolder').click(function(){				
		tinyBrowserPopUp('file','edit-news-link');
		return false;
	});	
});
function wrap(selector, notop){
	var type = (selector.charAt(0) == '#' ? 'id':'class');
	var name = selector.substr(1,selector.length);
	
	if (top){
		$(selector).before('<div '+type+'="'+name+'-T"><!--stuff--></div>');
	}
	$(selector).after('<div '+type+'="'+name+'-B"><!--stuff--></div>');	
}
/*Gets the news table*/
function getNewsTable(year, page){
	var data = {};
	if (year){
		data.year = year;
	}
	if (page){
		data.page = page;
	}
	
	$.ajax({
		url:getPath()+'news_results.php',
		dataType:'json',
		data:data,
		type:'GET',
		beforeSend:function(){
			$('#content h2').after('<div class="loader" id="news-loader">Loading...</div>');
		},
		success:function(data){		
			$('#news-table tbody, #news-pages').html('');
			var admin = ($('.admin-news').length ? true:false);
			for (var n in data.results){		
				var row = '<tr id="newsrow_'+data.results[n].id+'">';
				if (admin){
					row += '<td class="editor">[<a href="#" class="edit" id="edit-news_'+data.results[n].id+'">Edit</a>]'+
					'[<a class="delete" href="'+getPath()+'delete_news.php?id='+data.results[n].id+'">Delete</a>]</td>';
				}
				row += '<td class="newslink"><a href="'+data.results[n].filename+'" target="_blank">'+data.results[n].title+'</a></td>'
				+'<th scope="row">'+data.results[n].date+'</th></tr>';
				$('#news-table tbody').append(row);				
			}
			var year = '';
			if (data.year){
				year = '&amp;year='+data.year;
				$('#news-prev, #news-next').attr('href','#?year='+data.year);
			}			
			for (var n=0; n<data.number/data.limit; n++){				
				$('#news-pages').append('<a href="news_results.php?page='+n+year+'">'+(n+1)+'</a>');
			}
			if (data.page){
				$('#news-pages a:eq('+data.page+')').addClass('current');
			}else{
				$('#news-pages a:eq(0)').addClass('current');
			}
			$('#news-pages a').click(goNewsPage);
			$('#news-loader').remove();
			if (admin){
				$('#news-table .edit').click(editNews);
				$('#news-table .delete').click(function(){
					return confirm('Are You Sure You Want to Delete This News Article?');
				});
			}
		}
	});	
}
function goNewsPage(){
	var url = $(this).attr('href');
	var year = reqFromURL(url, 'year');
	var page = reqFromURL(url, 'page');

	getNewsTable(year, page);	
	return false;
}
//get a request string from a url
function reqFromURL(url, req){
	req = req+'=';	
	if (url.indexOf(req) == -1 || url.indexOf('?') == -1){
		return false;
	}
	var query = url.slice(url.lastIndexOf(req)+req.length);
	
	if (query.indexOf('&') != -1){
		query = query.substring(0,query.indexOf('&'));
	}
	return query;
}
//set default text of input fields
function defaultText(){
	if($(this).val() == '' || $(this).val() == $(this).attr('title')){
		$(this).addClass('default');
		$(this).val($(this).attr('title'));
	}
}
//undo default text
function focusText(){
	$(this).removeClass('default');
	if($(this).val() == $(this).attr('title')){
		$(this).val('');
	}
}
//validate form
function validateContact(){
	//required name, email, captcha
	var name = $('#contact-name').val();
	var email = $('#contact-email').val();
	var captcha = $('#captcha').val();
	var codelength = $('#captcha').attr('maxlength');
	$('.missing-field').removeClass('missing-field');
	$('#validator').html('');
	
	var valid = true;
	var message = '';
	if (name == '' || name == $('#contact-name').attr('title')){
		$('#contact-name').addClass('missing-field');
		valid = false;
		message += 'Please provide your name!<br />';
	}
	if (email == '' || email == $('#contact-email').attr('title') || !validateEmail(email)){
		valid = false;
		$('#contact-email').addClass('missing-field');
		message += (email == '' || email == $('#contact-email').attr('title') ? 'Please provide your email!<br />':'Please enter a valid email!<br />'); 
	}
	if (captcha == '' || captcha.length != codelength){
		valid = false;
		$('#captcha').addClass('missing-field');
		message += (captcha == '' ? 'Please fill in the code!<br />':'The Code is '+codelength+' characters long!<br />');
	}
	if (valid){
		$('#contact-form input[type="text"], #contact-form textarea').each(function(){
			if ($(this).val() == $(this).attr('title')){
				$(this).val('');
			}
		});
	}else{
		$('#validator').html(message);
	}
	return valid;
}
//validates an email using unicode characters
function validateEmail(email){
	var emailreg = /^((([a-zA-Z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-zA-Z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-zA-Z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-zA-Z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/; 
	if (!emailreg.exec(email))
		return false;
	else
		return true;
}
//changes a banner
function changeBanner(){
	var bannerfile = getPath()+$(this).val();	
	if (!$('#banner').length){
		$('#wrapper .center').prepend('<div id="banner"><img src="" alt="Banner" /></div>');
		if (!Modernizr.boxshadow){
			wrap('#banner');
		}
	}		
	if ($(this).val() != ''){
		$('#banner, #banner-T, #banner-B').show();
		$('#banner img').attr('src',bannerfile);
	}else{
		$('#banner, #banner-T, #banner-B').hide();
	}
}
//changes a thumbnail
function changeThumb(){
	var thumbfile = getPath()+$(this).val();
	
	if ($(this).val() != ''){
		$('#project-thumb').attr('src',thumbfile);
	}
}
//get the path
function getPath(){
	var base = location.protocol+'//'+location.hostname;
	var path = location.pathname.split('/');
	
	base = (path.length < 3 ? base+'/':base+'/'+path[1]+'/');	
	return base;	
}
//open edit quicklink stuff
function editQuickLinks(){
	$('#edit-quicklinks-dialog').dialog('open').dialog('option','title','Edit Quick Link');
	var id = $(this).attr('id').replace('quicklink-edit_','');
	var linkid = '#quicklink_'+id;
	
	$('#quicklink-edit-title').val($(linkid).html().replace('&amp;','&'));
	$('#quicklink-edit-link').val($(linkid).attr('href'));
	$('#quicklink-action').val('edit');
	$('#quicklink-id').val(id);
	return false;
}
//open edit quicklink stuff
function addQuickLink(){
	$('#edit-quicklinks-dialog').dialog('open').dialog('option','title','Add Quick Link');	
	
	$('#quicklink-edit-title').val('');
	$('#quicklink-edit-link').val('');
	$('#quicklink-action').val('add');
	$('#quicklink-id').val('new');
	return false;
}
//get stock info
function getStocks(yahoostock){	
	$.ajax({
		url:getPath()+'get_stock.php',
		data:'s='+yahoostock,
		type:'GET',
		dataType:'json',		
		success:function(data){
			$('#stock-ticker #ammount').html(data.value);
			$('#stock-ticker #change').html(data.change);
			if (Number(data.change) < 0){
				$('#stock-ticker #change').addClass('down');
			}else{
				$('#stock-ticker #change').addClass('up');
			}
		}
	});
}
//open edit News Dialog
function editNews(){
	$('#edit-news-dialog').dialog('open').dialog('option','title','Edit News Article');
	var id = $(this).attr('id').replace('edit-news_','');
	var rowid = '#newsrow_'+id;
	
	$('#edit-news-title').val($(rowid+' .newslink a').html().replace('&amp;','&'));
	$('#edit-news-link').val($(rowid+' .newslink a').attr('href'));
	$('#edit-news-date').val($(rowid+' th').html());
	
	$('#news-action').val('edit');
	$('#news-id').val(id);
	return false;
}
//open add News Dialog
function addNews(){
	$('#edit-news-dialog').dialog('open').dialog('option','title','Add News Article');	
	
	$('#edit-news-title').val('');
	$('#edit-news-link').val('');
	$('#edit-news-date').val('');
	
	$('#news-action').val('add');
	$('#news-id').val('new');
	return false;
}
