

var init_wysiwyg = function(target, options) {
	if ( typeof options == 'undefined' ) { options = {} }

	tinyMCE.init({
		mode: (target) ? 'specific_textareas' : 'textareas',
		editor_selector: (target) ? target : '',
		theme : "advanced",
		plugins : "safari,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,imagemanager,filemanager",
		language: options.lang || 'ko',
		height: options.height || 400,
		width: options.width || 700,

		// Theme options
		theme_advanced_buttons1 : options.buttons1 || "save,newdocument,|,forecolor,backcolor,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,formatselect,fontselect,fontsizeselect",

		theme_advanced_buttons2 : options.buttons2 || '', /* "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,|,insertdate,inserttime,|,code,preview", /**/

		theme_advanced_buttons3 : options.buttons3 || '', /* "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,ltr,rtl,|,print,|,fullscreen", /**/
		theme_advanced_buttons4 : options.buttons4 || '', /* "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template", /**/

		theme_advanced_toolbar_location : options.toolbar_location || "top",
		theme_advanced_toolbar_align : options.toolbar_align || "left",
		theme_advanced_statusbar_location : options.statusbar_location || "bottom",
		theme_advanced_resizing : options.resizing || false,

		// Example content CSS (should be your site CSS)
		content_css : "css/content.css",

		// Drop lists for link/image/media/template dialogs
		template_external_list_url : "lists/template_list.js",
		external_link_list_url : "lists/link_list.js",
		external_image_list_url : "lists/image_list.js",
		media_external_list_url : "lists/media_list.js",

		// Replace values for the template plugin
		template_replace_values : {
			username : "Some User",
			staffid : "991234"
		},
		
		setup: options.setup || function() {}
	});	
}

var set_photo_uploader = function(btn, url, item_obj, func) {
    if ( typeof item_obj == 'object' && 'serializeArray' in item_obj ) {
        var data = item_obj.serializeArray();
    }
    else {
        var data = item_obj;
    }

	new AjaxUpload(btn, {
		action: url,
		data : data,
		responseType: 'json',
		onSubmit: function(file , ext) {
			if ( ext && /^(jpg|png|jpeg|gif)$/i.test(ext) ) {
			    data = ( typeof data == 'function') ? data() : data;
			    if ( typeof data == 'null' ) {
			        return false;
			    }
				this.setData(data);
				func.do_submit();
			}
			else {
				return false;				
			}
		},
		onComplete: function(file, ret){
			func.do_complete(ret);

			return false;
		}
	});	
}


$(document).ready(function () {
/********************************************************
	* for Login
********************************************************/
	var login_ui = {
		allFields: $('#login_username, #login_password'),
		updateTips: function(t) { $("#validateTips").text(t).effect("highlight",{},1500); },
		checkLength: function(o,n,min,max) {
			o = $(o);
			if ( o.val().length > max || o.val().length < min ) {
				o.addClass('ui-state-error');
				this.updateTips("Length of " + n + " must be between "+min+" and "+max+".");
				return false;
			} else {
				return true;
			}
		},
		checkRegexp: function(o,regexp,n) {
			o = $(o);
			if ( !( regexp.test( o.val() ) ) ) {
				o.addClass('ui-state-error');
				this.updateTips(n);
				return false;
			} else {
				return true;
			}
		},
		do_login: function() {
			var bValid = true;
			login_ui.allFields.removeClass('ui-state-error');

			bValid = bValid && login_ui.checkLength('#login_username', 'User ID',3,16);
			bValid = bValid && login_ui.checkLength('#login_password', 'Password',4,16);

			bValid = bValid && login_ui.checkRegexp('#login_username',/^[a-z]([0-9a-z_])+$/i,"Username may consist of a-z, 0-9, underscores, begin with a letter.");
			// From jquery.validate.js (by joern), contributed by Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/
//				bValid = bValid && login_ui.checkRegexp(email,/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-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-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i,"eg. ui@jquery.com");
			bValid = bValid && login_ui.checkRegexp('#login_password',/^([0-9a-zA-Z])+$/,"Password field only allow : a-z 0-9");
			
			if (bValid) {
				$(this).dialog('close');
				$('#login_form > form').trigger('submit');
			}
		}
	};

    /*
	$("#login_form")
		.dialog({
			bgiframe: true,
			autoOpen: false,
			width: 370,
			height: 350,
			modal: true,
			draggable: false,
			resizable: false,
			title: $('#login_form > h3').hide().text(),
			buttons: {
				'Login': login_ui.do_login,
				Cancel: function() {
					$(this).dialog('close');
				}
			},
			close: function() {
				login_ui.allFields.val('').removeClass('ui-state-error');
			}
		})
		.find('form').submit(function() {
//			console.log(33);
//			return false;
		});

	$('#login_btn')
		.click(function() {
			$('#login_form').dialog('open');
			login_ui.allFields.add('#remember_login_session').keydown(function(e) {
				if ( e.keyCode == 13 ) {
					login_ui.do_login();
				}
			});
			return false;
		})
	*/
/********************************************************
	* /for Login
********************************************************/
	$('#register_user_form').submit(function(e) {
		e.stopPropagation();
		e.preventDefault();
		
		$('#btn_register_user').css('opacity', 0.5).attr('disabled', true);
		
		$.post(this.action, $(this).serialize(), function(data) {
			if ( data.result == false ) {
				var i;
				for ( i in data.errors ) {
					for ( var j=0; j < data.errors[i].length; ++j ) {
						$('#error_id_'+i).empty().append('<li>'+data.errors[i][j]+'</li>');
					}
				}
				$('#btn_register_user').css('opacity', 1.0).attr('disabled', false);
			}
			else {
				window.location = data.redirect;
			}
		}, 'json');
		
		return false;
	});

	$('#id_username').change(function(e) {
		e.stopPropagation();
		e.preventDefault();
		
		$('#error_id_username').hide();

		return false;
	});

	$('#btn_check_id_username').click(function(e) {
		e.stopPropagation();
		e.preventDefault();
		var id_str = $('#'+this.id.replace('btn_check_', '')).val();
		
		if (id_str.length <= 3) {
			return false;			
		}

		$.post(this.href, {'username':id_str}, function(data) {
			$('#error_id_username').empty().append('<li>'+data.msg+'</li>')
				.css('color', (data.result === true) ? '#55c85a' : '#c8555a').show();
		}, 'json');

		return false;
	});

	$('#id_email_domain').bind('keyup change', function(e) {
		e.stopPropagation();
		e.preventDefault();

		switch ( $(this).val() ) {
			case '_':
			return false;
			break;

			case '-':
				$('#id_email_domain_manually').show().focus();			
			break;
			
			default:
				$('#id_email_domain_manually').hide();
				$(this).focus();
			break;
		}
		return false;
	});

	$('.store_description').hide();
	$('.toggle_detail_shop').click(function() {
		var el = $(this);
		var id = String(el.attr('id')).split('_');
		id = id[id.length-1];
		
		if ( $('#shop_description_'+String(id)).css('display') == 'none' ) {
    		el.css('background-position', 'bottom left');
    		$('#shop_description_'+String(id)).show();		    
		}
		else {
    		el.css('background-position', 'top left');
    		$('#shop_description_'+String(id)).hide();
		}
		return false;
	});
	
	
	$('#shore_filter_form').change(function(e) {
		e.stopPropagation();
		e.preventDefault();

	    return false;
	});
	
	var my_contents_paging = function(el, target) {
		$.getJSON(el.attr('href'), function(data) {
		    if ( data.result ) {
		        $('#'+target+'_container')
		            .fadeOut(400).empty()
		            .append(data.html).fadeIn(400);
		            
		        $('#'+target+'_paginator')
		            .children('a').removeClass('current_page_on_paginator');

		        el.addClass('current_page_on_paginator');
		    }
		});	    
	}
	
	$('.ajax_my_contents_comments, .ajax_my_contents_posts').click(function(e) {
		e.stopPropagation();
		e.preventDefault();
		
		var el = $(this);
		
		if ( el.hasClass('ajax_my_contents_comments') ) {
    		my_contents_paging(el, 'my_contents_comments');		    
		}
		else if ( el.hasClass('ajax_my_contents_posts') ) {
    		my_contents_paging(el, 'my_contents_posts');
		}
		else {
		    
		}

	    return false;
	});
}) /* end of $(document).ready */
.click(function() {
});


