/*
 * boost framework
 * http://code.google.com/p/boost-css-js-framework/
 *
 * Licensed under the MIT License
 * Copyright 2009 Hayato Tomoda
 *
 * Write your custom code here.
 */

$().ready(function(){
    showNoLinkBorders();
    dropdowns();
    curvey_usages();
    breadcrumb_rewind();
	breadcrumb_autofill();
    localnav_apply();
    replaceTitle();
    basic_table_sorter();
	search_highlight();
    
    $('#swf').flash({
        swf: 'swf/topflash.swf',
        height: 300,
        width: 800
    });
});

/*
Remove A tag borders
*/
function showNoLinkBorders()
{
	$("a").focus(function(){
		this.blur();
	});
}

// function apply_zIndex () {
//     var zIndexNumber = 1000;
//     $('div').each(function(){
//         $(this).css('zIndex', zIndexNumber);
//         zIndexNumber -= 10;
//     })
// }

function catch_effect() {
    $('#catch .block').add_layer("url('images/background_layers/top_left.png') no-repeat 0px 0px");
    $('#catch .block').add_layer("url('images/background_layers/top_right.png') no-repeat 780px 0px");
    $('#catch .block').add_layer("url('images/background_layers/top_line.png') repeat-x 0px 0px");
    $('#catch .block').add_layer("url('images/background_layers/top_left.png') no-repeat 0px 0px");
    $('#catch .block').add_layer("url('images/background_layers/top_left.png') no-repeat 0px 0px");
    $('#catch .block').add_layer("url('images/background_layers/top_left.png') no-repeat 0px 0px");
    $('#catch .block').add_layer("url('images/background_layers/top_left.png') no-repeat 0px 0px");
    $('#catch .block').add_layer("url('images/background_layers/top_left.png') no-repeat 0px 0px");
    $('#catch .block').add_layer("url('images/background_layers/top_left.png') no-repeat 0px 0px");
}

function dropdowns(){
    var $menu = "";
    
    $('#menubar .nav > li').hover(function() {
        $menu = $(this);
        
        $menu.find('.root').addClass('hover');
        
        if($menu.attr('class') == 'mega'){
            $(this).find('.dropdown').show();
        }
    }, function() {
        
        $menu.find('.root').removeClass('hover');
        
        if($menu.attr('class') == 'mega'){
            $(this).find('.dropdown').fadeOut('fast');
        }
    });
}

function apply_currentnav (category) {
    $('#' + category).addClass('current');
}

function product_usage() {
    $('.usages .usage .product a').bigTarget({
        hoverClass: 'over',
        clickZone:  'div:eq(0)'
    });
}

function is_legacyBrower () {
    if($.browser.msie && $.browser.version=="6.0") return true;
}

function replaceTitle () {
    var category_title  = $('.category_title');
    Cufon.replace(category_title);
    
    // if(category_title){
    //     $('.category_title').jQIR("png", "/images/headlines/");
    // }
    // 
    // if(paragraph_title){
    //     $('.paragraph h1').jQIR('png', "/images/headlines/");
    // }
}

function setBigTargetForCategories () {
    var $obj = $('#categories .category');
    var wrap_s = '<div class="border"><img src="/images/common/raw_image_border.png" />';
	var wrap_e = '</div>';
	var wrap = '<div class="border"><img src="/images/common/raw_image_border.png" /></div>';
    
    $obj.find('h3 a').bigTarget({
        hoverClass: 'over',
        clickZone:  'div:eq(0)'
    });
    
    //make img border (no legacy browser supported)
    if(!is_legacyBrower()){
        $obj.find('img').each(function(i) {
            $(this).hide().before(wrap_s).after(wrap_e);
            $(this).siblings('.border').css("background", "url(" + this.src + ")");
        });
    }
}

function setBigTargetForSubCategories () {
    $('#sub_categories .category h3 a').bigTarget({
        hoverClass: 'over',
        clickZone:  'div:eq(0)'
    });
}

function setBigTargetForSpecs () {
    $('.specs li p a').bigTarget({
        hoverClass: 'over',
        clickZone:  'li:eq(0)'
    });
}

function setBigTargetForNewsHome() {
    $('.news_home li p a').bigTarget({
        hoverClass: 'over',
        clickZone:  'li:eq(0)'
    });
}

function setBigTargetForNews () {
    $('.news li p a').bigTarget({
        hoverClass: 'over',
        clickZone:  'li:eq(0)'
    });
}

function setBigTargetForCatalogues () {
    $('.catalogues li p a').bigTarget({
        hoverClass: 'over',
        clickZone:  'li:eq(0)'
    });
}

function setBigTargetForSearch () {
    $('.search_result li span a').bigTarget({
        hoverClass: 'over',
        clickZone:  'li:eq(0)'
    });
}

function setBigTargetForPolicy () {
    $('.links li span a').bigTarget({
        hoverClass: 'over',
        clickZone:  'li:eq(0)'
    });
}

function curvey_usages() {
    var $data = $('.usages .usage .data span');
    
    // settings = {
    //         tl: { radius: 5 },
    //         tr: { radius: 5 },
    //         bl: { radius: 5 },
    //         br: { radius: 5 },
    //         antiAlias: true,
    //         autoPad: false,
    //         validTags: ["span"]
    //     }

    //$data.corner();
}

/*
autofill current page when not displayed in breadcrumb
*/
function breadcrumb_autofill () {
	var $obj = $('.breadcrumbs ul li a:last');
	var path = location.pathname;
	var chunk = '<li><a href="' + path + '">' + document.title + '</a></li>';
	
	if ($obj.attr('href') != path) {
		$obj.parent().after(chunk);
	}
}

function breadcrumb_rewind () {
    var obj = '<span class="rewind">前のページに戻る</span>';
    var log = history.length;
    
    if(log > 0){
        $('.breadcrumbs').append(obj);
    }
    
    $('.rewind').hover(function() {
        this.addClass('rewind_hover'); 
    }, function() {
        this.removeClass('rewind_hover');
    });
    
    $('.rewind').click(function() {
        history.back();
    });
}

function localnav_apply () {
    var links = $('#localnav a');
    var path = location.pathname;
    var path_array = path.split("/");
    var matched = false;
    
    //get parent directory
    path_array.pop();
    path_parent = path_array.join('/') + '/';
    
    //replace english
    Cufon.replace(links.find('span.en'));
    
    //apply .current with backloop
    $(links.get().reverse()).each(function(index) {
      
        if($(this).attr('href') == path){
            $(this).addClass('current');
            matched = true;
            return;
        }
        else if($(this).attr('href') == path_parent && matched == false) {
            $(this).addClass('current');
            return;
        }
    });
}

function basic_table_sorter () {
    var $header_text = $('.basic_table thead tr th');
    var current_th = "";
    var current_state = "";
    var previous = "";
    var sortkey_both = '<img src="/images/common/sort_both.gif"/>';
    var sortkey_asc  = '<img src="/images/common/sort_asc.gif"/>';
    var sortkey_desc = '<img src="/images/common/sort_desc.gif"/>';
    
    $('.basic_table').tablesorter();
    
    //apply sortkey
    $header_text.each(function(index) {
        $(this).append(sortkey_both);
    });
    
    //click events
    // $header_text.toggle(function() {
    //     $(this).find('img').replaceWith(sortkey_asc);
    // }, function() {
    //     $(this).find('img').replaceWith(sortkey_desc);
    // });
    
    $header_text.click(function() {
        //first time clicked, set asc
        if(!current_th && !current_state){
            $(this).find('img').replaceWith(sortkey_asc);
            current_th = jQuery.data(this);
            current_state = 'asc';
        }
        
        //clicked same header, change asc to desc
        else if(current_th == jQuery.data(this) && current_state != 'desc'){
            $(this).find('img').replaceWith(sortkey_desc);
            current_th = jQuery.data(this);
            current_state = 'desc';
        }
        
        //clicked same header, change desc to asc
        else if(current_th == jQuery.data(this) && current_state != 'asc'){
            $(this).find('img').replaceWith(sortkey_asc);
            current_th = jQuery.data(this);
            current_state = 'asc';
        }
        
        //clicked other header, reset previous and set asc
        else if( current_th && current_th != jQuery.data(this)){
            //reset previous
            $(this).parent().find('th img').replaceWith(sortkey_both);
            
            //set asc
            $(this).find('img').replaceWith(sortkey_asc);
            current_th = jQuery.data(this);
            current_state = 'asc';
        }
    });
}

function toggle_googlemap () {
    var $obj = $('.specs .show_googlemap');
    
    $obj.toggle(function() {
        $(this).parent().siblings('.googlemap_area').show();
        $(this).text('非表示');
    }, function() {
        $(this).parent().siblings('.googlemap_area').hide();
        $(this).text('地図を表示');
    });
}

function lightbox () {
	$("#columns a[rel^='lightbox']").prettyPhoto({theme:'facebook'});
}

/* top page innerfade -----------------------------------------*/

function innerfade () {
	$('#innerfade').innerfade({
		speed: 1000,
		timeout: 5000,
		type: 'random_start',
		containerheight: '226px'
	});
}

/* keyword highlightening for search results -------------------*/

function search_highlight () {
	// // retrieve GET params
	// var vars = [], hash;
	//     var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
	//     for(var i = 0; i < hashes.length; i++)
	//     {
	//         hash = hashes[i].split('=');
	//         vars.push(hash[0]);
	//         vars[hash[0]] = hash[1];
	//     }
	// 
	// // parse only 'query'
	// var target_keyword = decodeURI(vars['query']);
	// var regex = new RegExp(target_keyword, 'ig');
	// var replacement = '<b class="highlight">' + target_keyword + '</b>';
	// // highlight target_keyword in .col .right .last
	// $('.col.right.last').find('*').andSelf().contents().not('[nodeType=1]').each(function(){
	// 	this.nodeValue = this.nodeValue.replace(regex, replacement);
	// });
}
