var URLROOT = 'http://' + location.hostname + '/';
var STATE_DEFAULT = 0;
var STATE_EDIT = 1;

/*-- common --*/
function dw(obj){
	alert(var_dump(obj));
}
function var_dump(obj) {
	if(typeof(obj) == "object") {
		return "Type: "+ typeof(obj) + ((obj.constructor) ? "\nConstructor: "+ obj.constructor : "") + "\nValue: " + obj;
	}else{
		return "Type: " + typeof(obj) + "\nValue: " + obj;
	}
}

function myRand(max){
	var ret = max * Math.random();
	if(ret == 0.0){
		ret = 1;
	}else{
		ret = Math.ceil(ret)
	}
	return ret;
}

//Validation
var validators = new Array();
function isValid(messageNode){
	if(messageNode == undefined){
		messageNode = '#msg';
	}
	var msg = '';
	var msgs = '';
	var valid = true;
	if($(messageNode).length > 0){
		$(messageNode).contents().remove();
	}
	for(validator in validators){
 		if(typeof validators[validator] == "string"){
 			if((msg = eval(validators[validator])) != null){
				$(validator).addClass('warn');
				msgs += '<span>' + msg + '</span><br />';
				valid = false;
			}else{
				$(validator).removeClass('warn');
			}
		}
	}
	if($(messageNode).length > 0 && msgs != ''){
				$(messageNode).append(msgs);
	}
	return valid;
};

String.prototype.nl2br = function(){
	return this.replace(/\r?\n/g, '<br />');
}

String.prototype.escapeHtml = function(){
	return this.replace(/&/g, "&amp;").replace(/"/g, "&quot;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
}

function is_email(val){
	return val.match(/^[_a-z0-9-]+([\._a-z0-9-\+]+)*@[a-z0-9-]+([\.][a-z0-9-]+)+$/i);
}

function is_telno(val){
	return val.match(/^[0-9]+[0-9\-]*[0-9]+$/i);
}

function changeView(editable){
	$('.view').each(function (){
		this.style.display = (editable ? 'none' : '');
	});
	$('.edit').each(function(){
		this.style.display = (editable ? '' : 'none');
	});
}

function initRollOver(selecter, suffix){
	document.image_cache = new Object();
	$(selecter).each(function(){
	
		var imgsrc;
		var dot = this.src.lastIndexOf('.');
		var suf = this.src.lastIndexOf(suffix + '.');
		var imgsrc_on;
		var state;
		if(suf > 0){
			imgsrc = this.src.substr(0, suf) + this.src.substr(dot);
			imgsrc_on = this.src;
			state = 'on';
		}else{
			imgsrc = this.src;
			imgsrc_on = this.src.substr(0, dot) + suffix + this.src.substr(dot);
			state = 'off';
		}
		
		document.image_cache[imgsrc] = new Image();
		document.image_cache[imgsrc].src = imgsrc_on;
		document.image_cache[imgsrc].state = state;
		
		$(this).hover( 
			function(){
				if(document.image_cache[imgsrc].state == 'on'){
					return;
				}
				this.src = document.image_cache[imgsrc].src;
			}
			, function(){
				if(document.image_cache[imgsrc].state == 'on'){
					return;
				}
				this.src = imgsrc;
			}
		); 
	});
}

function toggleRollOver(selecter, suffix, state){
	$(selecter).each(function(){
		
		var imgsrc;
		var dot = this.src.lastIndexOf('.');
		var suf = this.src.lastIndexOf(suffix + '.');
		if(suf > 0){
			imgsrc = this.src.substr(0, suf) + this.src.substr(dot);
		}else{
			imgsrc = this.src;
		}
		
		if(state == 'on'){
			this.src = document.image_cache[imgsrc].src;
		}else{
			this.src = imgsrc;
		}
		document.image_cache[imgsrc].state = state;
	});
}

function innerScroll(selecter){
	$('html,body').animate(
		{scrollTop: $(selecter).offset().top}
		, {easing: "easeOutExpo"}
	); 
}

jQuery(document).ready(function($){
	$.browser.msie6 = ($.browser.msie && /MSIE 6\.0/i.test(window.navigator.userAgent) && !/MSIE 7\.0/i.test(window.navigator.userAgent));
});

